我有大量的实时传入数据用于可视化。我有数据集中的速度和时间。就像你考虑CSV格式一样,它就像下面的
Speed, Time
s1, t1
.......
sn,tn
但是我想想象一下t1-t10的速度。我怎样才能做到这一点?从更广泛的意义上说,我应该能够选择我将在图表中保留多少时间帧。可能是从t1-t10,t5-t10或t10-t25等。
有人这样处理过这样的问题吗?
答案 0 :(得分:1)
虽然.filter
方法通常是解决数据减少以便以后处理或可视化的最简单方法,但在您的特定示例中,我更倾向于采用其他策略:
data.sort(function(a, b){return a.Time > b.Time;}))
var bisect = d3.bisector(function(d) { return d.Time; });
我们需要平分器left
和right
,所以:
var biLeft = bisec.left, biRight = bisec.right;
现在我们可以使用这些函数对数组进行切片并提取所需的信息:
var subset = data.slice(biLeft(data,“t5”),biRight(data,“t10”));
答案 1 :(得分:0)
我找到了解决问题的好方法。 在开始时,我可以使用以下代码对完整数据进行切片:
var data=data.slice(startIndex,endIndex);
通过这种方式,通过改变起始和结束参数,我可以轻松地改变图表