我正在使用Chart.js绘制一个简单的条形图,并且需要格式化其Y轴,例如
123456.05至123 456,05 $
我不懂怎么用 scaleLabel : "<%=value%>"
我看到有人指向“ JS Micro-Templating ”,
但不知道如何在我们的scaleLabel
选项中使用它。
有人知道如何格式化此Y轴,也许给我一个例子?
我正在使用Chart.js绘制一个简单的条形图,并且需要格式化其Y轴,例如
123456.05至123 456,05 $
我不懂怎么用 scaleLabel : "<%=value%>"
我看到有人指向“ JS Micro-Templating ”,
但不知道如何在我们的scaleLabel
选项中使用它。
有人知道如何格式化此Y轴,也许给我一个例子?
Answers:
我遇到了同样的问题,我认为在Chart.js 2.xx中,方法如下所示略有不同。
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'
}
}
]
}
}
ChartJS库的一个未记录的功能是,如果传入一个函数而不是一个字符串,它将使用您的函数来呈现y轴的scaleLabel。
因此,在可行的同时,"<%= Number(value).toFixed(2).replace('.',',') + ' $' %>"
您还可以执行以下操作:
scaleLabel: function (valuePayload) {
return Number(valuePayload.value).toFixed(2).replace('.',',') + '$';
}
如果您正在做任何复杂的事情,我建议您这样做。
scaleLabel : "<%= Number(value).toFixed(2).replace('.', ',') + ' $'%>"
正如Nevercom所说,scaleLable应该包含javascript,因此只需应用所需的格式即可操纵y值。
请注意该值是一个字符串。
var options = {
scaleLabel : "<%= value + ' + two = ' + (Number(value) + 2) %>"
};
如果您想设置手动比例尺,可以使用scaleOverride
var options = {
scaleLabel : "<%= value + ' + two = ' + (Number(value) + 2) %>",
scaleOverride: true,
scaleSteps: 10,
scaleStepWidth: 10,
scaleStartValue: 0
};
Chart.js 2.XX
我知道这个帖子很旧。但是,如果有人正在寻找更灵活的解决方案,那就是
var options = {
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
callback: function(label, index, labels) {
return Intl.NumberFormat().format(label);
// 1,350
return Intl.NumberFormat('hi', {
style: 'currency', currency: 'INR', minimumFractionDigits: 0,
}).format(label).replace(/^(\D+)/, '$1 ');
// ₹ 1,350
// return Intl.NumberFormat('hi', {
style: 'currency', currency: 'INR', currencyDisplay: 'symbol', minimumFractionDigits: 2
}).format(label).replace(/^(\D+)/, '$1 ');
// ₹ 1,350.00
}
}
}]
}
}
“嗨”是印地语。在此处查看其他语言环境参数
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation#locales_argument
以获得更多货币符号
https://www.currency-iso.org/en/home/tables/table-a1.html