2

通过解析 XML 文件,我已经成功地用 d3 创建了几个图,例如这个。现在我想知道如何处理不完整的数据集。在我的特定示例中,某些元素中缺少一些子元素。在这种情况下,我希望 d3 丢弃该元素而不显示任何内容。目前,我正在对数据集应用过滤器,然后再将其输入 d3 的 data() 函数。

有没有更聪明的方法可以即时执行此操作?理想情况下,我只想null在设置属性时返回,并且所需的子元素结果不存在。

完全免责声明:我刚刚开始学习 d3.js。

4

1 回答 1

2

这可以通过display在数据连接的 DOM 元素上设置属性来获得:

elemSelection.style("display", function (d) { 
    return is_data_NA(d) ? "none" : null; 
});

这是一个简短的模拟示例:http: //jsfiddle.net/rU4XL/

请注意,默认情况下,如果value 函数返回.attr.style等,接受value为函数的函数将从选择中删除属性或内容。因此,在这种情况下,该属性将从具有有效数据的元素中删除。nulldisplayelemSelection

于 2013-02-02T19:34:59.390 回答