python - 如果信号值大于信号平均值则画一条线

标签 python if-statement matplotlib signal-processing

当我的信号值大于该信号的平均值时,我想在图表上画一条线。我的信号是肌肉拉动和放松的简单串联。

muscle_on2 = np.random.uniform(-1, 1, 1000) + offs
muscle_off = np.random.uniform(-0.05, 0.05, 500) + offs
emg = np.concatenate([muscle_off, muscle_on1, muscle_off, muscle_on2, muscle_off])

为了做到这一点,我尝试了这样的事情:

pl.plot(x_axis)
for i in range(0, len(emg), 1):
    if emg[i]>RM:
        pl.plot([i, 1.0], [i, 1.0], 'r-', lw=5)

其中 RM 是:

RM = np.mean(emg)

但是,它不是生成水平线,而是生成垂直线: enter image description here

有人可以帮我解决这个问题吗?

我忘记澄清这一点,在这种情况下offs(偏移量已经被过滤掉)这部分代码的实现是为了显示我的信号是如何创建的。当我打印出照片上的平均值时,它在 0.26 左右波动。我希望我的线在信号值大于平均值时出现,并在信号值小于平均值时结束。

最佳答案

您应该使用 matplotlib.pyplot.axhline ,

import matplotlib.pyplot as plt
import numpy as np

muscle_on2 = np.random.uniform(0, 1, 1000)
muscle_off = np.random.uniform(0, 0.05, 500)
emg = np.concatenate([muscle_off, muscle_on2, muscle_off])
RM = np.mean(emg)
plt.plot(emg)
plt.axhline(RM, color='r')
plt.show()

这会给你

enter image description here

matplotlib.pyplot.hlines如果你不想一路走完剧情,

import matplotlib.pyplot as plt
import numpy as np

muscle_on2 = np.random.uniform(0, 1, 1000)
muscle_off = np.random.uniform(0, 0.05, 500)
emg = np.concatenate([muscle_off, muscle_on2, muscle_off])
e = x[emg > RM]
plt.plot(x, emg)
plt.hlines(RM, e[0], e[-1], color='r', lw=2, zorder=3)
plt.show()

enter image description here

<小时/>

注意   -   matplotlib.pyplot导入约定是

import matplotlib.pyplot as plt

以及 deprecated 的约定pylab 是

import matplotlib.pylab as pl

如果您正在使用 pylab 那么您应该切换到 pyplot 作为 official usage guide表示。

关于python - 如果信号值大于信号平均值则画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59758801/

相关文章:

MINIX 上的 Python C 扩展

python - 如何在 python 中的 webob 中的 HttpRedirect 或 HttpFound 中发送 post 变量?

xquery - 如何在xquery分配中使用if else

javascript - mpld3 生成的 html 图例中缺少 xticklabels 和颜色

Pythonic 检测一维观测数据中异常值的方法

python - 使用索引作为键从数据框创建字典

python - 如果没有办法在 pandas read_csv 中设置超时,该怎么办?

java - 寻找一种在 Java 中用 Swift 转换抄写本的优雅方法

javascript - Java Script/jQuery – 简单的 if 语句不适用于预定义变量

python - 更新 PyQt 小部件