2014-02-10 78 views
0

我有一個數據系列,其看起來如下:matplotlib pylplot:繪製一系列累積數據作爲差異

times[] 
values[] 

中的值系列中的數據是累積的,因此在位置n處的值等於( n-1)+自上一次以來的變化。

我想繪製值之間的差異。 例如

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

很明顯,我可能通過在繪圖之前迭代值來預先計算數據。然而,我不是從數學背景,並強烈懷疑這是一個相當普遍的操作,並有標準的功能來做到這一點,我沒有找到。

我回顧了標準的matplotlib和pyplot文檔,以及通過google發現的一些教程,但我沒有看到類似的東西。

回答

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,或者通過在plot調用中使用times[1:]times[:-1]丟棄第一個/最後一個值times