Chart.js - Форматирование оси Y
Я использую Chart.js, чтобы нарисовать простой штрих-график, и мне нужно отформатировать его ось Y, как
123456.05 до 123 456,05 $
Я не понимаю, как использовать scaleLabel : "<%=value%>"
Я видел кого-то, указывающего, на JS Micro-Templating ",
но не знаю, как использовать это с нашей опцией scaleLabel
.
Кто-нибудь знает, как отформатировать эту ось Y и, может быть, дать мне пример?
Ответы
Ответ 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...)