我有一个需要绘制的大型时间序列数据集,并且正在尝试使用 D3 来完成它。我计划让我的图表以时间为 x 轴,并允许图表在 x 方向上移动。我想让图表只加载/显示屏幕上当前时间范围内存在的点。
例如,如果我的数据集有 1-100 次,但图表以显示的时间 1-10 开始,则该图表应仅绘制点 1-10。然后用户可以向右移动并看到时间 5-15 并且图表应该相应地更新。
谁能向我解释如何通过 d3 来完成?我很难将立即加载并立即绘制图形的整个数据集与数据子集的选择性图形联系起来。
我有一个需要绘制的大型时间序列数据集,并且正在尝试使用 D3 来完成它。我计划让我的图表以时间为 x 轴,并允许图表在 x 方向上移动。我想让图表只加载/显示屏幕上当前时间范围内存在的点。
例如,如果我的数据集有 1-100 次,但图表以显示的时间 1-10 开始,则该图表应仅绘制点 1-10。然后用户可以向右移动并看到时间 5-15 并且图表应该相应地更新。
谁能向我解释如何通过 d3 来完成?我很难将立即加载并立即绘制图形的整个数据集与数据子集的选择性图形联系起来。
我认为您正在寻找该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.
您也可以直接在节点数组上应用过滤器。