javascript - 如何在 ChartJs 中显示数据值或索引标签(最新版本)

标签 javascript reactjs chart.js react-chartjs

如何在ChartJs(最新版本)中显示数据值或索引标签,如下图所示:

enter image description here

我正在使用 ChartJs 在我的 React 项目中显示图表。一切都工作正常,除了这个。

我在 stackoverflow ( https://stackoverflow.com/a/31632707 ) 中找到了答案,但它使用旧版本的 ChartJS,并且不适用于我正在使用的版本。

我的 ChartJs 代码:

var ctx = document.getElementById("myChart");

var BarChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["Jan","Feb","March"],
        datasets: [{
            label: "Chart Data",
            data: [10,20,15],
            backgroundColor: "red",
            borderColor: "green",
            borderWidth: 1
        }]
    },
    options: {
        legend: {
            display: false
        },
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }],
            xAxes: [{
                ticks: {
                    maxRotation: 180
                }
            }]
        }
    }
});

我尝试使用以下函数添加它:ctx.fillText(bar.value, bar.x, bar.y - 5);,但它显示.fillText不是一个函数

最佳答案

终于我成功了。

在 onComplete() 函数中使用以下代码:

animation: {
    onComplete: function () {
        var ctx = this.chart.ctx;
        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontFamily, 'normal', Chart.defaults.global.defaultFontFamily);
        ctx.fillStyle = "black";
        ctx.textAlign = 'center';
        ctx.textBaseline = 'bottom';

        this.data.datasets.forEach(function (dataset)
        {
            for (var i = 0; i < dataset.data.length; i++) {
                for(var key in dataset._meta)
                {
                    var model = dataset._meta[key].data[i]._model;
                    ctx.fillText(dataset.data[i], model.x, model.y - 5);
                }
            }
        });
    }
}

关于javascript - 如何在 ChartJs 中显示数据值或索引标签(最新版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38344582/

相关文章:

reactjs - 找不到模块 : Error: Cannot resolve module 'fs'

javascript - y 轴值太高

javascript - CHART.JS 如何偏移/移动/调整 y 轴上的标签使其位于网格线的中间而不是在网格线的中心?

javascript - Jquery UI 模态对话框

javascript - 使用 websocket 将客户端连接到服务器

javascript - .Net Core 2.2-事件目录: get user name on javascript

javascript - 更改 Angular 为 10 的图表的数据集

javascript - 在 :value of <option> tag in vuejs 中使用 split()

javascript - jquery 验证器插件第 86 行中的这个注释是什么

javascript - 在功能组件初始渲染时将变量添加到存储中