Подтвердить что ты не робот

Chart.js - Форматирование оси Y

Я использую Chart.js, чтобы нарисовать простой штрих-график, и мне нужно отформатировать его ось Y, как

123456.05 до 123 456,05 $

Я не понимаю, как использовать scaleLabel : "<%=value%>"

Я видел кого-то, указывающего, на JS Micro-Templating ",
но не знаю, как использовать это с нашей опцией scaleLabel.

Кто-нибудь знает, как отформатировать эту ось Y и, может быть, дать мне пример?

4b9b3361

Ответ 1

Недокументированная функция библиотеки ChartJS заключается в том, что если вы передаете функцию вместо строки, она будет использовать вашу функцию для визуализации оси scale.Label оси y.

Итак, пока "<%= Number(value).toFixed(2).replace('.',',') + ' $' %>" работает, вы также можете сделать:

scaleLabel: function (valuePayload) {
    return Number(valuePayload.value).toFixed(2).replace('.',',') + '$';
}

Если вы делаете что-то дистанционно, я бы рекомендовал это сделать.

Ответ 2

У меня была та же проблема, я думаю, что в Chart.js 2.x.x подход немного отличается, как показано ниже.

ticks: {
    callback: function(label, index, labels) {
        return label/1000+'k';
    }
}

Подробнее...

var options = {
    scales: {
        yAxes: [
            {
                ticks: {
                    callback: function(label, index, labels) {
                        return label/1000+'k';
                    }
                },
                scaleLabel: {
                    display: true,
                    labelString: '1k = 1000'
                }
            }
        ]
    }
}

Ответ 3

scaleLabel : "<%= Number(value).toFixed(2).replace('.', ',') + ' $'%>"

Ответ 4

Поскольку Nevercom сказал, что scaleLable должен содержать javascript, поэтому для управления значением y просто применяйте требуемое форматирование.

Обратите внимание, что это значение.

var options = {      
    scaleLabel : "<%= value + ' + two = ' + (Number(value) + 2)   %>"
};

Пример jsFiddle

если вы хотите установить ручную шкалу y, вы можете использовать scaleOverride

var options = {      
    scaleLabel : "<%= value + ' + two = ' + (Number(value) + 2)   %>",

    scaleOverride: true,
    scaleSteps: 10,
    scaleStepWidth: 10,
    scaleStartValue: 0

};

Пример jsFiddle

Ответ 5

Здесь вы можете найти хороший пример того, как форматировать значение Y-Axis.

Кроме того, вы можете использовать scaleLabel : "<%=value%>", о котором вы упомянули. В основном это означает, что все теги <%= и %> будут обрабатываться как код javascript (т.е. вы можете использовать if statments...)