matplotlib pyplot:绘制一系列累积数据作为差异

时间:2014-02-10 12:56:47

标签: python graph matplotlib plot

我有一个数据系列,如下所示:

times[]
values[]

值系列中的数据是累积的,因此位置n处的值等于(n-1)+自上一次以来的变化。

我想在情节之间区别价值观。 E.g。

t[n] vs (v[n]-v[n-1])

显然,我可以通过在绘图之前迭代值来预先计算数据。但是,我不是来自数学背景,并且强烈怀疑这是一个非常常见的操作,并且有一些标准函数可以做到这一点,但我找不到。

我已经回顾了标准的matplotlib和pyplot文档,以及通过谷歌找到的一些教程,但我没有看到类似的东西。

1 个答案:

答案 0 :(得分:1)

numpy中有一个函数执行此操作,称为diff

In [1]: import numpy as np

In [2]: np.diff(range(10))
Out[2]: array([1, 1, 1, 1, 1, 1, 1, 1, 1])

所以你可以做点什么

plt.plot(times, np.diff(values))

另请注意,diff的结果是比原始列表/数组短一个项目。因此,您需要values 1长于times,或者使用timestimes[1:] times[:-1]来放弃plot的第一个/最后一个值调用。