Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Chart.JS数据元素格式化为货币_Javascript_Jquery_Json_Chart.js - Fatal编程技术网

Javascript 将Chart.JS数据元素格式化为货币

Javascript 将Chart.JS数据元素格式化为货币,javascript,jquery,json,chart.js,Javascript,Jquery,Json,Chart.js,我发现可以通过一个快速JavaScript回调函数将Chart.JS的x轴或y轴格式化为货币 callback: function(value, index, values) { if (parseInt(value) >= 1000) { return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } else { return '$' + value;

我发现可以通过一个快速JavaScript回调函数将Chart.JS的x轴或y轴格式化为货币

callback: function(value, index, values) {
    if (parseInt(value) >= 1000) {
        return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    } else {
        return '$' + value;
    }
}
}
数据的情况似乎并非如此:
在我的实例中,这是一个包含数值的JavaScript 1D数组,我想在适当的地方添加一个美元符号和逗号。如何将其添加到Charts.jS中

编辑
这就是我填充JSON数组的方式,我想格式化
data:values

var barChartData = {
    labels: labelsarr,
    datasets: [{
        label: 'Amount',
        backgroundColor: 'rgba(200, 200, 200, 0.75)',
        borderColor: 'rgb(255, 99, 132)',
        borderWidth: 1,
        data: values
    }]

};
JSON数组的格式是
[“AAAA”,1001000023124420,30500004000070000700700082200923209232001111]

我想从
索引[1]
开始格式化以显示美元和货币。如何做到这一点

第二次编辑时间
我尝试使用下面的语法添加标题,并将数据点和左轴格式化为货币,但这不再在我的页面上显示任何内容

var ctx = document.getElementById('canvas').getContext('2d');
var chart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: labelsarr,
        datasets: [{
            label: 'Test',
            data: values,
            backgroundColor: 'rgba(0, 119, 204, 0.8)',
        }]
    },
    options: {
        responsive: true,
        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;
                        }
                    }
                }
            }]
        },
        legend: {
            position: 'top',
        },
        title: {
            display: true,
            text: '<?php echo $name ?> Test'
        }
        tooltips: {
            callbacks: {
                label: function(t, d) {
                    var xLabel = d.datasets[t.datasetIndex].label;
                    var yLabel = t.yLabel >= 1000 ?
                        '$' + t.yLabel.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") :
                        '$' + t.yLabel;
                    return xLabel + ': ' + yLabel;
                }
            }
        }
    }
});
var ctx=document.getElementById('canvas').getContext('2d');
var图表=新图表(ctx{
类型:'bar',
数据:{
标签:labelsarr,
数据集:[{
标签:“测试”,
数据:价值观,
背景颜色:“rgba(0,119,204,0.8)”,
}]
},
选项:{
回答:是的,
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的,
回调:函数(值、索引、值){
如果(parseInt(值)>=1000){
返回“$”+value.toString()。替换(/\B(?=(\d{3})+(?!\d))/g,“,”;
}否则{
返回“$”+值;
}
}
}
}]
},
图例:{
位置:'顶部',
},
标题:{
显示:对,
文本:“测试”
}
工具提示:{
回调:{
标签:功能(t,d){
var xLabel=d.datasets[t.datasetIndex].label;
var yLabel=t.yLabel>=1000?
“$”+t.yLabel.toString()。替换(/\B(?=(\d{3})+(?!\d))/g,”,”:
“$”+t.yLabel;
返回xLabel+':'+yLabel;
}
}
}
}
});

这可以使用以下工具提示标签回调函数实现

tooltips: {
   callbacks: {
      label: function(t, d) {
         var xLabel = d.datasets[t.datasetIndex].label;
         var yLabel = t.yLabel >= 1000 ? '$' + t.yLabel.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : '$' + t.yLabel;
         return xLabel + ': ' + yLabel;
      }
   }
}

ᴡᴏʀᴋɪɴɢ ᴇxᴀᴍᴘʟᴇ

var labelsarr=['A','B','C','D','E','F','G','H','I','J','K','L','M'];
var值=[“AAAA”、100、10000、2310、24420、30、50000、400000、70000、700、823200、923200、1111];
var ctx=document.getElementById('canvas').getContext('2d');
var图表=新图表(ctx{
类型:'bar',
数据:{
标签:labelsarr,
数据集:[{
标签:“金额”,
数据:价值观,
背景颜色:“rgba(0,119,204,0.8)”,
}]
},
选项:{
工具提示:{
回调:{
标签:功能(t,d){
var xLabel=d.datasets[t.datasetIndex].label;
var yLabel=t.yLabel>=1000?'$'+t.yLabel.toString()。替换(/\B(?=(\d{3})+(?!\d))/g,“,”:'$'+t.yLabel;
返回xLabel+':'+yLabel;
}
}
},
比例:{
雅克斯:[{
滴答声:{
回调:函数(值、索引、值){
如果(parseInt(值)>=1000){
返回“$”+value.toString()。替换(/\B(?=(\d{3})+(?!\d))/g,“,”;
}否则{
返回“$”+值;
}
}
}
}]
}
}
});


这有什么问题吗?它工作得很好@ℊααnd-我编辑我的帖子->以进一步说明JSON数组是如何设置的@ℊααnd-将左轴格式化为货币,我已经用我发布的第一个函数完成了。我想将数据点格式化为货币,因此当您将鼠标悬停在条形图上时,它显示的是货币格式的金额。例如,如果您将鼠标悬停在其中一个字母上,我希望它显示以货币格式化的金额。它目前只显示一个直数字字符串。这删除了我在左侧的格式设置。我希望左侧和数据点具有货币格式。然后保留y轴刻度的prev函数。。这是用于工具提示而不是y轴勾选查看我的编辑。我试图修改语法,但现在我的页面上没有显示任何内容。您在关闭
标题
属性
},
后错过了逗号