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

如何在Chart.js右侧图例的单个标签右侧添加对应数据值?

在Chart.js环形图的图例标签右侧显示对应数据值的实现方法

当然可以实现这个效果,只需要通过自定义Chart.js的图例标签生成逻辑,将对应的数据值直接拼接到图例文本后方即可。

以下是修改后的完整代码:

$(document).ready(function() {
   var ctx = document.getElementById('mycanvas').getContext('2d');
   var chartData = [7, 3, 3, 4, 8];
   var chart = new Chart(ctx, {
      type: 'doughnut',
      data: {
         labels: ["CL", "ML", "Spl.L", "PD", "Other Permissions"],
         datasets: [{
            label: "My First dataset",
            backgroundColor: ['#F0CB8C', '#EE97A1', '#A9D5D4', '#E8A3D7', '#CFA3FD'],
            data: chartData,
         }]
      },
      options: {
         legend: {
            position: 'right',
            labels: {
               // 自定义图例标签生成函数
               generateLabels: function(chart) {
                  // 获取默认生成的图例配置
                  var defaultLabels = Chart.defaults.doughnut.legend.labels.generateLabels(chart);
                  // 遍历每个标签,拼接对应的数据值
                  return defaultLabels.map(function(labelItem, index) {
                     return {
                        text: `${labelItem.text} ${chartData[index]}`,
                        fillStyle: labelItem.fillStyle,
                        strokeStyle: labelItem.strokeStyle,
                        lineWidth: labelItem.lineWidth,
                        pointStyle: labelItem.pointStyle
                     };
                  });
               }
            }
         }
      }
   });
})

关键修改说明

  • 重写了legend.labels.generateLabels函数,这是Chart.js提供的自定义图例内容的入口
  • 先获取默认生成的图例配置,保留原有的样式(颜色、标记形状等)
  • 通过map遍历每个图例项,将对应位置的数据值拼接到标签文本后

这样修改后,图例的每个标签右侧就会显示对应的数据值,和你期望的示例图片效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:45:46