在d3中省略空值

时间:2017-02-05 23:30:42

标签: d3.js

我被困在一个项目中,该项目从包含一些空值的JSON数据中绘制一条线。

我在这里开始了一个小提琴:https://jsfiddle.net/scm60/pafs5x4m/

我在这里找到了一个可能的解决方案: In d3.js, skip append() for null data,建议添加

circle.filter(function(d) { return d == null; }).remove()

但这在我的例子中不起作用。

对此问题的任何建议?

1 个答案:

答案 0 :(得分:0)

这里有三个问题:

首先,您没有名为circle的选择。所以,让我们创建它:

var circle = svg.selectAll("circle")
    .data(data)
    //etc...

其次,在forEach之后,您不再拥有gewicht的空值,只有零。

第三,它必须是d.gewicht,而不是d

circle.filter(function(d) { 
    return d.gewicht == 0; 
})
.remove();

这是您更新的小提琴:https://jsfiddle.net/y25mLtue/

PS:如果你想删除归零(null)的行,你需要line.defined()。这是小提琴:https://jsfiddle.net/97ao8v16/