首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法可以使用Matplotlib中的时间序列数据生成类方波?

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

Stack Overflow用户
提问于 2019-05-14 05:03:37
回答 1查看 202关注 0票数 1

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

例如,本系列中有以下值:

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

显然,如果我画这个系列,它不会出现在方波上。

有什么方法可以告诉Python,如果值大于零,则在零以上绘制一致的水平线(例如,假设在1处绘制直线),如果值低于零,则在零下绘制一条水平线(例如,在- 1)?

因为这是一个时间序列,我不期望它是一个完美的正方形。

EN

回答 1

Stack Overflow用户

发布于 2019-05-14 05:05:47

np.clip用作:

代码语言:javascript
复制
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

代码语言:javascript
复制
s = pd.Series(x)
s = s.clip(lower=-1, upper=1)

如果它的值介于>=-1到<=1之间,那么使用np.where

代码语言:javascript
复制
x = np.where(np.array(x)>0, 1, -1) # for series s = np.where(s>0, 1, -1)
代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56123305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档