我正在绘制N系列数据。每个系列包含N个数据点,这些数据点在UNIX时间中具有5个小数位的精度。数据点可能具有无差别的间隔,因此两个或多个数据点共享相同的发生时间是非常不可能的。处理过期数据的数据结构/算法
我将所有数据点存储在一个排序后的集合中。绘制的较小系列由该数据集构建而成。问题是,如果我在时间线上为数据设置动画,则一个系列可能没有任何最近的点,所以这些点不能留在被查看的集合中,因为它们显然不在同一个位置。例如,一个数据系列可能会停止点,然后再重新开始。这里是数据点的数组(它们的UNIX发生时间)。
allpoints
= {120.5,130.5,135.5,140.5,140.5,145.5,150.3,150.5,160.5,170.5,180.5,190.5,200.5,200.5};以及其中,
series1
= {135.5,140.5,145.5,150.5,200.5
};
series2
= {120.5,130.5,140.5,150.3,160.5, 170.5, 180.5, 190.5
,200.5};
当然,我无法保留series1
的所有旧点,因为它基本上不存在50秒,而series 2
的点仍然被绘制。
对于我来说,保持这些系列中的数据保持最新状态的最佳方式是,无需每次从主要数据点集合添加另一个点时都检查每个点。也许是一个优先队列或什么?
感谢
我不明白 - 你想绘制这些旧的数据点或扔掉它们吗? – MBo 2015-02-23 16:10:34
数据点将被绘制出来,但只有在绘制当前点的合理时间内。 – CanadaIT 2015-02-23 16:13:15
您是否考虑过使用Visiblox FilteredDataSeries for series1和series2,并将其OriginalDataSeries设置为allpoints? WindowedFilterStrategy可能是你需要的。 http://www.visiblox.com/blog/posts/2013/10/25/plotting-lots-of-data-with-combined-filterstrategies – 2015-02-24 10:09:06