How do I customize y-axis labels on a Chart.js line chart?
Asked Answered
S

1

17

I have the following chart and would like to manually set the Y axis labels. Instead of using 1,2,3,4,5, I want One, Two, Three, Four, Five.
Is there a way to do this? Here's my options structure:

    options = {
      scales: {
        yAxes: [{
          scaleLabel: { labelString: ["One", "Two", "Three", "Four", "Five"] },
          ticks: { min: 1, max: 5, stepSize: 1, suggestedMin: 0.5, suggestedMax: 5.5},
          gridLines: {display: false}
        }]
       },
     };

enter image description here

Sheridansherie answered 8/6, 2016 at 16:45 Comment(0)
C
60

In the ticks object you can pass a callback that will be given the label it is about to show. From here you just return a string you wish to display in place of the label.

chart.js-V2.X fiddle exampe chart.js-V3.X fiddle exampe

ticks: {
    min: 0,
    max: 5,
    stepSize: 1,
    suggestedMin: 0.5,
    suggestedMax: 5.5,
    callback: function(label, index, labels) {
        switch (label) {
            case 0:
                return 'ZERO';
            case 1:
                return 'ONE';
            case 2:
                return 'TWO';
            case 3:
                return 'THREE';
            case 4:
                return 'FOUR';
            case 5:
                return 'FIVE';
        }
    }
}
Crysta answered 9/6, 2016 at 7:35 Comment(4)
Thank you very much for this solution.Taite
Thank you very much @quince after spending a couple of hours researching on it. I finally resolved it. you are star :) thanks +1Crocker
Says Invalid scale configuration for scale: yAxes for mePeradventure
@OscarChambers you are prob using V3.x of chartjs, the code above was valid for 2.x, take a look at this updated fiddle jsfiddle.net/nwr8pa6s, the axis are now objects rather than arraysCrysta

© 2022 - 2024 — McMap. All rights reserved.