• 欢迎光临~

数据处理画图——emd

开发技术 开发技术 2022-08-23 次浏览
from scipy.signal import argrelextrema
import matplotlib.pyplot as plt
import numpy as np
"""
通过Scipy的argrelextrema函数获取信号序列的极值点
"""
# 构建100个随机数
data = np.random.random(100)
# 获取极大值
max_peaks = argrelextrema(data, np.greater)
print(max_peaks)
#获取极小值
min_peaks = argrelextrema(data, np.less)
print(min_peaks)
数据处理画图——emd

 

 这里,max_peaks保存的是数组的下标,

array([ 1, 4, 6, 9, 15, 18, 22, 26, 28, 31, 34, 36, 38, 42, 44, 47, 51,
54, 58, 61, 63, 65, 69, 72, 74, 76, 79, 81, 83, 86, 89, 93, 96],
dtype=int64),)

而print(data[max_peaks])则是对应数组下标的值

[0.68161308 0.91949444 0.85594387 0.85309506 0.93176879 0.52598609
0.79837529 0.65186956 0.77214933 0.62420653 0.95902604 0.50410231
0.97083478 0.93332787 0.24562553 0.8003892 0.52488821 0.88988088
0.79513418 0.97581509 0.37382731 0.9291115 0.84393682 0.80352976
0.89393529 0.92746503 0.47448472 0.24859635 0.8211082 0.89274342
0.97325629 0.97059639 0.59012422]

所以所以所以

在画图的时候

数据处理画图——emd

 

 

plt.scatter(max_peaks,data[max_peaks])

这个plt.scatter(x,y),里的参数X,Y分别是横坐标,纵坐标

数据处理画图——emd

 

程序员灯塔
转载请注明原文链接:数据处理画图——emd
喜欢 (0)