如何使用Matplotlib或其他方法在动画图中绘制不规则采样的时间数据?

时间:2019-03-18 13:47:19

标签: numpy matplotlib animation

我有不定期记录的数据,我想将其显示为随时间推移的滚动动画。例如,数据A可以具有时间点[0.001、0.004、0.007、0.009,...,0.97],数据B在每个点上可以具有大致相同的正负0.02。

我想创建随时间更新的数据的滚动动画,但是只有在该顶点的时间过去之后才更新线的点/顶点。我想不出一种好方法让numpy说“对于此行,仅计算此时间戳上的数据”。我认为,如果我可以从matplotlib示例中弄清楚一些东西,但是完整的解决方案也将是不错的。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为一种解决方案是将数据映射为一致的格式:

A = np.array([1, 1.5, 4.5, 5])
B = np.array([1, 2.5, 3.5, 5])

scroll = np.linspace(1,5,11)
A_idx = np.searchsorted(A, scroll) 
B_idx = np.searchsorted(B, scroll)

>>> scroll
array([1. , 1.4, 1.8, 2.2, 2.6, 3. , 3.4, 3.8, 4.2, 4.6, 5. ])
>>> A[A_idx]
array([1. , 1.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 5. , 5. ])
>>> B[B_idx]
array([1. , 2.5, 2.5, 2.5, 3.5, 3.5, 3.5, 5. , 5. , 5. , 5. ])

您可能需要谨慎使用前向值或后向值(此处为前向值),但在有新数据可用时会更新。