在可视化中处理多个子图时,有必要控制每个子图的轴范围以确保正确的数据表示。本问题探讨如何在双子图布局中设置第二个子图的 y 轴范围。当 FFT 图出现异常尖峰,导致所需数据不可见时,就会出现此问题。
要解决此问题,请在绘图后使用 pylab.ylim([bottom, top])已创建。底部和顶部参数分别定义轴范围的下限和上限。
import numpy, scipy, pylab, random
xs = []
rawsignal = []
with open("test.dat", 'r') as f:
for line in f:
if line[0] != '#' and len(line) > 0:
xs.append(int(line.split()[0]))
rawsignal.append(int(line.split()[1]))
h, w = 3, 1
pylab.figure(figsize=(12,9))
pylab.subplots_adjust(hspace=.7)
pylab.subplot(h,w,1)
pylab.title("Signal")
pylab.plot(xs,rawsignal)
pylab.subplot(h,w,2)
pylab.title("FFT")
fft = scipy.fft(rawsignal)
pylab.plot(abs(fft))
pylab.ylim([0,1000]) # Set the y-axis range
pylab.savefig("SIG.png",dpi=200)
pylab.show()
1.从 Pylab 迁移到 Matplotlib 的 pyplot
从 2021 年开始,Matplotlib 强烈不鼓励使用 pylab。相反,建议专门导入pyplot:
from matplotlib import pyplot as plt
2。使用 plt.ylim() 而不是 pylab.ylim()
使用 pyplot 设置 y 轴范围的正确语法是 plt.ylim()。其用法类似于 pylab.ylim().
plt.ylim(0, 100)
3。设置最小 X 轴值
除了调整 y 轴范围外,请考虑设置最小 x 轴值以确保 FFT 图的整个范围可见。
plt.xlim(1, 1000)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3