微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

matplotlib find_peaks我需要忽略峰

如何解决matplotlib find_peaks我需要忽略峰

生成一个这样的图形,它测量透明管的内容,但是管的边缘却像这样,您可以在管的边缘看到峰值。关于如何避免这种情况的任何建议”额外的”山峰?欢迎任何建议。

graph

管子的图像就是这个

tube

解决方法

这实际上不是特定于matplotlib的问题。根据我对您问题的理解,您希望保留红色峰,同时删除蓝色峰。此任务可以通过scipy.signal.find_peaks完成,您可以指定一个高度值来控制算法发现的峰。以下是一些最低代码(改编自scipy docs):

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
x = electrocardiogram()[2000:4000]
peaks,_ = find_peaks(x,height=0.5)

fig,ax = plt.subplots(1,1,figsize=(7.2,7.2))
ax.plot(x)
ax.plot(peaks,x[peaks],"x")
ax.axhline(y=0.5,ls="--",color="gray")

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。