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

Chart.js V3.5 实现图例在数据名称后展示对应数值的问题咨询

解决方法

你修改legend.title不生效的原因是该配置用于定义整个图例的公共标题,并非单个图例项的文本控制参数。要实现图例项后展示对应数值,需要通过plugins.legend.labels.generateLabels回调函数自定义每个图例项的生成逻辑。

修改后的完整代码

var ctx = document.getElementById('top-five').getContext('2d');
var myChartpie = new Chart(ctx, {
  type: 'pie',
  data: {
    labels: {!! $top->pluck('name') !!},
    datasets: [{
      label: 'Statistics',
      data: {!! $top->pluck('m_count') !!},
      backgroundColor: {!! $top->pluck('colour') !!},
      borderColor: {!! $top->pluck('colour') !!},
    }]
  },
  options: {
    plugins: {
      legend: {
        display: true,
        // 单个图例项配置
        labels: {
          // 自定义生成每个图例项
          generateLabels: function(chart) {
            // 先获取默认生成的图例项基础信息(保留色块、点击交互等原生特性)
            const defaultLabels = Chart.defaults.plugins.legend.labels.generateLabels(chart);
            // 遍历每个图例项,拼接对应数值
            defaultLabels.forEach((labelItem, index) => {
              const value = chart.data.datasets[0].data[index];
              labelItem.text = `${labelItem.text} ${value}`;
            });
            return defaultLabels;
          }
        }
      },
    },
    responsive: true,
  }
});

注意事项

如果你使用的是Chart.js v2版本,将上述generateLabels配置移到options.legend.labels下即可,不需要外层包裹plugins节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:48:02