You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChartJS环形图图例设为true仍不可见,寻求解决办法

ChartJS环形图图例不显示的解决方法

问题根源在于数据结构错误:labels应该放在data对象的根层级,而非dataset数组内部。ChartJS需要从data根节点的labels获取图例文本,你现在把它写在dataset里,导致图表无法识别图例对应的标签,所以即使开启了legend.display: true也不会显示。

修改后的完整代码如下:

var data = [{
    data: [successfulBuildsCount, failureBuildsCount],
    backgroundColor: [
      "green",
      "red"
    ],
    borderColor: "#fff"
}];

var options = {
    legend: { display: true },
    title: {
      display: true,
    },
    plugins: {
      datalabels: {
        formatter: (value, ctx) => {
          let sum = 0;
          let dataArr = ctx.chart.data.datasets[0].data;
          dataArr.map(data => {
            sum += data;
          });
          let percentage = (value * 100 / sum).toFixed(2) + "%";
          return percentage;
        },
        color: '#fff',
      }
    }
};

var ctx = document.getElementById("chartContainer");
var myChart = new Chart(ctx, {
    type: 'doughnut',
    data: {
      datasets: data,
      labels: ["Successes", "Failures"] // 把labels移到这里
    },
    options: options
});

关键改动说明

  • 将原来写在dataset里的labels数组,移动到data对象的根层级,和datasets同级。
  • 移除dataset内部的labels属性,因为这不是ChartJS规定的dataset属性字段。

这样调整后,ChartJS就能正确关联每个数据项的标签,自动渲染出对应的图例。

内容的提问来源于stack exchange,提问作者Arhan Sethi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:55:30