我有一个大的时间序列数据集需要绘制,我正在尝试使用D3来绘制。我计划让我的图的x轴为时间,并允许图在x方向上移动。我希望图形只加载/显示屏幕上当前时间范围内存在的点。
例如,如果我的数据集的时间为1-100,但图表以显示的时间1-10开始,那么图表应该只显示1-10点。然后,用户可以向右移动并看到时间5-15,并且图形应该相应地更新。
有人能向我解释一下如何通过d3实现这一点吗?我很难将整个数据集一次加载并立即绘制到数据子集的选择性绘制之间的理解联系起来。
我想你在找 selection.filter() 作用例如,您可以拥有:
selection.filter()
var allNodes = vis.selectAll("Nodes").data(data.nodes); var validNodes = allNodes.filter(function(d){return (d.time>1 && d.time <10)}); //use normal graph functions on validNodes.
您也可以直接在节点阵列上应用筛选器。