我经常看到.datum
当使用面积图时。例如:
svg = d3.select("#viz").append("svg").datum(data)
何时有任何经验法则.datum
需要吗?
var area = d3.svg.area()
.x(function(d) { return x(d.x); })
.y0(height)
.y1(function(d) { return y(d.y); });
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
svg.append("path")
.datum(data)
.attr("d", area);
我认为文档很好地回答了这个问题:https://github.com/mbostock/d3/wiki/Selections#wiki-datum https://github.com/mbostock/d3/wiki/Selections#wiki-datum.
基本上,要点是,在某些情况下,当您进行选择时,您对进入/退出集不感兴趣。如果是这种情况(整个图表通常都是这种情况),则可以使用基准。
Update: 这取决于:当您期望没有动态更新时(在您给定的示例中似乎就是这种情况),数据就可以了。为什么?因为还没有path svg元素,所以只有一个path元素,一旦添加就不会改变。
如果您有多个路径元素和动态更改(例如,每秒删除最旧的数据元素并添加新的数据元素),那么您will需要数据。这将为您提供三个集合:不再存在数据的图形元素集合、更新数据的元素集合以及之前不存在数据项的元素集合(分别是输入、更新和退出集)。一旦您需要这个,我建议您阅读 d3 文档。
显然,计算这三组并不是没有代价的。实际上,只有当您处理“大型”(我认为 d3 扩展到数十个或数千个项目)数据集时,这才应该成为问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)