向数据值图表添加小数点

Adding decimal points to data values chartJS

本文关键字:添加 小数点 数据      更新时间:2023-09-26

这告诉我如何将数据值添加到图表 JS - 将数据值添加到图表 JS

现在我想为这些值添加逗号,例如 5,000 6,000 而不是 5000 6000

JSFiddle for data values code

            var chartData = {
                labels: ["January", "February", "March", "April", "May", "June"],
                datasets: [
                    {
                        fillColor: "#79D1CF",
                        strokeColor: "#79D1CF",
                        data: [60, 80, 81, 56, 55, 40]
                    }
                ]
            };
            var ctx = document.getElementById("myChart1").getContext("2d");
            var myLine = new Chart(ctx).Line(chartData, {
                showTooltips: false,
                onAnimationComplete: function () {
                    var ctx = this.chart.ctx;
                    ctx.font = this.scale.font;
                    ctx.fillStyle = this.scale.textColor
                    ctx.textAlign = "center";
                    ctx.textBaseline = "bottom";
                    this.datasets.forEach(function (dataset) {
                        dataset.points.forEach(function (points) {
                            ctx.fillText(points.value, points.x, points.y - 10);
                        });
                    })
                }
            });
            var ctx = document.getElementById("myChart2").getContext("2d");
            var myBar = new Chart(ctx).Bar(chartData, {
                showTooltips: false,
                onAnimationComplete: function () {
                    var ctx = this.chart.ctx;
                    ctx.font = this.scale.font;
                    ctx.fillStyle = this.scale.textColor
                    ctx.textAlign = "center";
                    ctx.textBaseline = "bottom";
                    this.datasets.forEach(function (dataset) {
                        dataset.bars.forEach(function (bar) {
                            ctx.fillText(bar.value, bar.x, bar.y - 5);
                        });
                    })
                }
            });

不幸的是,JavaScript 中没有内置的跨浏览器解决方案来回答这个答案:

如何在 JavaScript 中打印带有逗号的数字作为千位分隔符

您可以使用包含在小提琴中的numbersWithCommas

var numberWithCommas = function(x) {
    return x
        .toString()
        .replace(/'B(?=('d{3})+(?!'d))/g, ",");
};

只需在this.datasets.forEach函数中包含bar.value = numberWithCommas(bar.value);

这将在将数字附加到图表之前用逗号格式化数字。