我有一个带有四个标签的饼图:
var data = [{
data: [50, 55, 60, 33],
labels: ["India", "China", "US", "Canada"],
backgroundColor: [
"#4b77a9",
"#5f255f",
"#d21243",
"#B27200"
],
borderColor: "#fff"
}];
使用 chartjs-plugin-datalabels
插件,我想用下面的代码在每个 Pie 块中显示百分比值:
formatter: (value, ctx) => {
let datasets = ctx.chart.data.datasets;
if (datasets.indexOf(ctx.dataset) === datasets.length - 1) {
let sum = 0;
datasets.map(dataset => {
sum += dataset.data[ctx.dataIndex];
});
let percentage = Math.round((value / sum) * 100) + '%';
return percentage;
} else {
return percentage;
}
},
color: '#fff',
}
我得到所有馅饼的 100% 价值,而不是各自的百分比。这是 JSFiddle ( https://jsfiddle.net/kingBethal/a1Lvn4eb/7/ )
原文由 theKing 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新了 2 位小数精度的小提琴。
您没有计算总和,而是仅将每个值的当前值存储在总和中。
这是工作小提琴: https ://jsfiddle.net/a1Lvn4eb/55/