Sam*_*ong 13 javascript jquery charts
我已经在stackoverflow中尝试了几个答案,但无济于事使它无法工作..我是Chart.js的新手,所以请耐心等待.
这是我到目前为止所尝试的. 将逗号添加到ChartJS数据点和此Chart.js数字格式
这是我的代码:
提前致谢.
Chart.defaults.global.legend = {
enabled: false
};
function load_yearly_sales_per_agent(param_year, transaction_url){
$(".custom_loader").show();
$(".custom_graph").hide();
$.ajax({
url:transaction_url,
type:'post',
data: {year : param_year},
dataType:'json',
success:function(result){
// Bar chart
var ctx = document.getElementById("mybarChart");
var mybarChart = new Chart(ctx, {
responsive: true,
multiTooltipTemplate: "<%=addCommas(value)%>",
type: 'bar',
data: {
labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
datasets: [{
label: 'Sales Per Month',
backgroundColor: "#26B99A",
data: result
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
$(".custom_loader").hide();
setTimeout(function(){
$(".custom_graph").show();
}, 200);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我想要的是在工具提示和Y轴上添加逗号.....
Phi*_*lip 19
我看到很多过于复杂的答案。
此功能已内置于 javascript 中.toLocaleString(),我们不必重新发明轮子!这也考虑了小数。
yAxes: [
{
ticks: {
beginAtZero: true,
userCallback: function(value, index, values) {
return value.toLocaleString(); // this is all we need
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
dan*_*e00 12
对于yAxes刻度选项,这将在千位标记处添加逗号:
ticks: {
beginAtZero:true,
userCallback: function(value, index, values) {
value = value.toString();
value = value.split(/(?=(?:...)*$)/);
value = value.join(',');
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
可以在工具提示回调中添加类似的功能.
这个FIDDLE中的完整示例
Jay*_*zzi 12
如果使用小数,则接受的答案不会将逗号放在正确的位置
45000.00将显示为45,000,.00
使用以下代码为chartjs ver 2.3
options: {
responsive: true,
maintainAspectRatio: false,
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var value = data.datasets[0].data[tooltipItem.index];
if(parseInt(value) >= 1000){
return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
return '$' + value;
}
}
} // end callbacks:
}, //end tooltips
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
callback: function(value, index, values) {
if(parseInt(value) >= 1000){
return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
return '$' + value;
}
}
}
}]
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
接受的答案适用于每列具有单个数据集的图表,例如条形图。对于折线图等多数据集图表,硬编码的数据集位置会导致解决方案失败。解决方案是将硬编码的数据集索引位置(data.datasets[0])替换为 chartjs 中内置的动态索引位置(data.datasets[tooltipItem.datasetIndex])。
通过根据用户的区域设置对值进行格式化,可以最好地完成数字的格式化。这有助于确保数字使用正确的装饰器(千位分隔符可以是逗号或句点,具体取决于用户的语言环境)。
options: {
tooltips: {
callbacks: {
label: function (tooltipItem, data) {
var tooltipValue = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
return parseInt(tooltipValue).toLocaleString();
}
}
}
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11498 次 |
| 最近记录: |