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

Chart JS Html Legend Plugin数据遍历及悬停显示百分比实现咨询

实现方案

以下是针对两个需求的具体修改方法:

1. HTML图例展示对应数据值

修改htmlLegendPlugin中生成图例文本的逻辑,通过item.index从图表数据集里获取对应项的数值,拼接在标签文本后即可。
找到插件内如下代码:

const text = document.createTextNode(item.text);
textContainer.appendChild(text);

替换为:

// 获取当前图例项对应的数据值
const itemValue = chart.data.datasets[item.datasetIndex].data[item.index];
const text = document.createTextNode(`${item.text}:${itemValue}`);
textContainer.appendChild(text);

如果需要在图例中直接展示百分比,可额外计算总和后拼接即可。

2. 鼠标悬停扇区显示占比百分比

在两个doughnut图表的options.plugins配置中新增tooltip回调,计算当前项占总数值的百分比并返回展示。
给两个图表的options.plugins对象添加如下配置:

tooltip: {
  callbacks: {
    label: function(context) {
      const label = context.label || '';
      const currentValue = context.parsed;
      // 计算当前数据集所有数值总和
      const total = context.dataset.data.reduce((sum, val) => sum + val, 0);
      // 计算百分比保留1位小数
      const percentage = ((currentValue / total) * 100).toFixed(1);
      return `${label}:${currentValue}(${percentage}%)`;
    }
  }
}

修改完成后即可实现悬停扇区时显示标签、数值、占比百分比的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:09:03