有没有一种方法可以使用Matplotlib中的时间序列数据生成方波?

时间:2019-05-14 05:03:38

标签: python pandas matplotlib

我对Python和Matplotlib比较陌生。有没有一种方法可以使用熊猫序列(即时间序列)生成“类似正方形” 的波形?

例如,以下值是系列中的值:

12、34、97,-4,-100,-9、31、87,-5,-2、33、13、1

很显然,如果我绘制此系列,它将不会显示为方波。

是否可以告诉Python如果值大于零,则在零以上绘制一致的水平线(例如,将线绘制在1处),并且如果值小于零,则绘制一条水平线。低于零(例如-1)?

由于这是一个时间序列,所以我不希望它是一个完美的正方形。

1 个答案:

答案 0 :(得分:2)

np.clip用作:

x=[12, 34, 97, -4, -100, -9, 31, 87, -5, -2, 33, 13, 1]
np.clip(x, a_min=-1, a_max=1)

array([ 1,  1,  1, -1, -1, -1,  1,  1, -1, -1,  1,  1,  1])

Series.clip

s = pd.Series(x)
s = s.clip(lower=-1, upper=1)

如果其值在> =-1到<= 1之间,请使用np.where

x = np.where(np.array(x)>0, 1, -1) # for series s = np.where(s>0, 1, -1)

print(s) 
0     1
1     1
2     1
3    -1
4    -1
5    -1
6     1
7     1
8    -1
9    -1
10    1
11    1
12    1
dtype: int64