复习回顾
matplotlib 是Python专门用来绘制渲染的模块,其底层主要分为脚本层、美工层和后端。脚本层为我们提供常见图形绘制如折线、柱状、直方、饼图。以往文章
这么详细的Python matplotlib 绘制图形 还不赶紧收藏_
Python matplotlib 绘制等高线图_
Python matplotlib 绘制散点图 还不收藏起来
python入门到进阶,爬虫数据分析全套资料分享讲解 CHINA
1. 频谱图概述
2. 频谱图属性
-
设置频谱图模式
- 关键字:mode
- 可选值为:{'default', 'psd', 'magnitude', 'angle', 'phase'}
- 默认为功率频谱图,magnitude为振幅频谱,angle为非展开相位频谱图,phase为展开相位频谱图
-
设置频谱图颜色系
- 关键字:cmap
- 形式如:"颜色表_r"
- 常用的有:'Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens'
-
设置频谱图窗口
- 关键字:window
- 默认值为:window_hanning
- 创建窗口的向量为:window_hanning、window_none、numpy.blackman、numpy.hamming
-
设置频谱图侧边
- 关键字:side
- 可选值:onside|twosided
- oneside为默认值,一侧用于真实数据,返回单边频谱
- twoside两侧用于复杂数据,强制返回双面
-
设置频谱图NFFT
- 关键字:NFFT
- 默认值为:256
- 设置每块用于FFT的数据点数,不能应用于获取零填充
3. 绘制频谱图步骤
import matplotlib.pyplot as plt
复制代码
- 使用numpy库里的arange()、sin()、cos()等方法准备x数据
t = np.arange(0.0,20.0,dt)
s1 = np.cos(2*np.pi*100*t)
s2 = 2*np.cos(2*np.pi*400*t)
s2[t<=5]=s2[12<t]=0
nse = 0.01 * np.random.random(size=len(t))
x = s1+s2+nse
复制代码
- 调用pyplot.specgram()方法绘制频谱图
plt.specgram(x,NFFT=256,Fs=1,noverlap=128)
复制代码
plt.show()
复制代码
plt.specgram(x,NFFT=1024,Fs=1,noverlap=900,cmap="gray")
?
4. 小试牛刀
我们学习了关于绘制频谱图相关属性,在实际运用中通常会结合折线图一起来看,我们来实操一下吧
- 通过pyplot.subplots()创建Axes对象
- Axes1对象调用plot()绘制折线图
- Axes2对象调用specgram()方法绘制频谱图
fig,(ax1,ax2) = plt.subplots(nrows=2)
dt= 0.0005
t = np.arange(0.0,20.0,dt)
s1 = np.cos(2*np.pi*100*t)
s2 = 2*np.cos(2*np.pi*400*t)
s2[t<=5]=s2[12<t]=0
nse = 0.01 * np.random.random(size=len(t))
x = s1+s2+nse
ax1.plot(t,x,"pink")
ax2.specgram(x,NFFT=1024,Fs=1,noverlap=900,cmap="gray")
plt.show()
复制代码
。
总结
本期,我们对matplotlib.pyplot.specgram()方法相关属性进行学习,通常在检查音视频等频率振幅数据时使用比较多。
以上是本期内容,欢迎大佬们点赞评论,下期见~
|