我似乎面临着很多D3的任务,我需要从数组中以百分比的形式表示一些值,并且有一些很好的D3方法可以快速轻松地完成它。
例如,我有一个像[10, 20, 49, 75, 23, 102]
这样的数组,我想在条形图上添加标签,将这些数字显示为数组中所有数字之和的百分比。
您如何推荐处理这些案件?一种方法是在创建图表之前运行此数据集并向对象添加字段,例如{value:10, asPercents:3}
然后将其放入相应的操作中,但我认为它不仅经常被我使用,所以必须有一个更好的内置助手。
答案 0 :(得分:1)
D3布局中的一些做了类似的事情(例如饼图和堆栈),但没有明确的帮助。编写一个函数来自己做这件事是相当容易的:
function percentize(data) {
var sum = d3.sum(data);
return data.map(function(d) {
return { value: d, percent: d*100/sum };
});
}