我使用angular-nvd3,我需要提供一些水平条,每条水平条都有一个计数和百分比。问题是百分比的总和有时是101%。例如:
有101%问题的解决方案 - 例如,如果百分比值为101%,则从一个百分比值中减去1。计数可以保持不变(因此第一个栏将是1 (16%)
)。
但是nvd3使用一个函数来接收条形值并需要返回将要呈现的字符串,这使得更难以计算出预处理解决方案。
知道如何使这项工作吗?
答案 0 :(得分:0)
我想你可以试试这个:
所以你必须存储当前值的索引,因为 valueFormat 不能自己提供索引
var valueFormatIndex = 0;
var data = [{values: [ ... ] }];
var config = {
...,
valueFormat: function(d, index){
valueFormatIndex = valueFormatIndex + 1;
// if its a last value we should round to lowest
if(data[0].values.length == valueFormatIndex) {
return Math.floor(d)
}
return Math.ceil(d) // otherwise return round to top
},
...
}
JSFiddle example