python - 如何在 Python 中使用日期时间和 scipy 峰值进行绘图?

标签 python pandas matplotlib plot scipy

我从一个问题中取了一个例子,并将其调整到我的数据集,但是在制作绘图时,我被卡住了。我知道如何制作日期时间 + 值图,但我不知道如何进行组合。
我的回复如下:Response .
该示例具有以下代码:
示例代码:

import numpy as np                    
import matplotlib.pyplot as plt
from scipy.signal import find_peaks 

np.random.seed(42)

# borrowed from @Majid Mortazavi's answer
random_number1 = np.random.randint(0, 200, 20)
random_number2 = np.random.randint(0, 20, 100)
random_number = np.concatenate((random_number1, random_number2))
np.random.shuffle(random_number)

peaks, _ = find_peaks(random_number, height=100)

plt.plot(random_number)
plt.plot(peaks, random_number[peaks], "x")
plt.show()
我将它改编为我的实值数据集,我有以下代码:
改编代码:
peaks, _ = find_peaks(my_dataset['quality'], height=500)

plt.figure(figsize=(14,12))
x = my_dataset.index
y = my_dataset.quality
plt.scatter(x, y, s=1,c='b',label='quality')
plt.plot(peaks, my_dataset['quality'][peaks], "x")

plt.xlabel('datetime')
plt.ylabel('values')
plt.legend(loc='best')
plt.title('Qualities')
plt.show()
最初,我的绘图代码是这样的,它有效:
初始代码:
plt.figure(figsize=(14,12))
x = my_dataset.index
y = my_dataset.quality
plt.scatter(x, y, s=1,c='b',label='quality')

plt.xlabel('datetime')
plt.ylabel('values')
plt.legend(loc='best')
plt.title('Qualities')
plt.show()
但我需要有相同的图,但在计算的峰值上带有“X”符号。
所以最终的结果应该是这样的:(我在paint中编辑了初始图以获得最终结果的视觉概念)
Artistic visualization of the final result
老实说,我不知道如何使它工作。你能帮我么?
我非常感谢任何帮助我的努力!!!非常感谢你提前!

最佳答案

documentationscipy.signal.find_peaks报告:

Returns: peaks: ndarray
Indices of peaks in x that satisfy all given conditions.


您的 peaks变量是 的数组指数 峰。因此,为了访问这些峰值的 x 和 y 坐标,您应该替换:
plt.scatter(x, y, s=1,c='b',label='quality')
plt.plot(peaks, my_dataset['quality'][peaks], "x")
plt.scatter(x, y, s=1,c='b',label='quality')
plt.plot(x[peaks], y[peaks], "x")

关于python - 如何在 Python 中使用日期时间和 scipy 峰值进行绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63296223/

相关文章:

python - 删除除列表中的所有单词

python - 减小 pyinstaller exe 的大小

python - 在python中为 Pandas 数据框获取时间索引

python - 将相同的 x 轴标签传递给 matplotlib 条形图的子图

python - 通过 Matplotlib 绘制正态密度的判别函数

python - 在Python 3.2中,如何从指定文件动态打开和编译类?

python - 查找输入中连续的空白字符

python - 避免在 Beam Python SDK 中重新计算所有云存储文件的大小

python - 使用 matplotlib 绘制缩放和旋转的二元分布

python - 尝试使用 pip 安装 matplotlib 和 numpy 时出现错误