2
例如,我正在制作各种财务信息图表 - 线条,条形和饼图。数据以.csv作为客户端来源,其中一些空值由连字符表示。数据给我的格式不是我可以改变的。这里有一个例子:d3.js过滤嵌套数据中的空值
Month,Actual,Forecast,Budget
Jul-14,200000,-,74073.86651
Aug-14,198426.57,-,155530.2499
Sep-14,290681.62,-,220881.4631
Oct-14,362974.9,-,314506.6437
Nov-14,397662.09,-,382407.67
Dec-14,512434.27,-,442192.1932
Jan-15,511470.25,511470.25,495847.6137
Feb-15,-,536472.5467,520849.9105
Mar-15,-,612579.9047,596957.2684
Apr-15,-,680936.5086,465313.8723
May-15,-,755526.7173,739904.081
Jun-15,-,811512.772,895890.1357
我用下面的代码被嵌套的数据,它工作正常,除了空值导致我各种各样的问题。
d3.csv("data/net.csv", function(error, data) {
var headers = d3.keys(data[0]).filter(function(head) {
return head != "Month";
});
data.forEach(function(d) {
d.month = parseDate(d.Month);
});
var categories = headers.map(function(name) {
return {
name: name,
values: data.map(function(d) {
return {
date: d.month,
rate: +(d[name]),
};
}),
};
});
有没有问题,当我确定一条线,因为我可以用.defined,但在条形图上附加数据点或矩形圈,它导致NaN的这打破了可视化。
理想情况下,我希望嵌套的数据不包含空数据点,而不是尝试处理渲染后的形状。也就是说,从上面的数据中,我想'实际'和'预测'数组只有6个对象,而'预算'数组有12个。我还需要保留索引值。
是否有一种方法可以过滤嵌套过程以排除空值?
嗨西里尔, 非常感谢,它过滤得很好,但不保留指数值。我怀疑这可能是不可能的。 – tgerard