Axes.set_xscale
您可以使用和函数更改轴的缩放比例,Axes.set_yscale
它们都接受或作为输入。因此,要将绘图更改为具有对数缩放的 x 轴,您可以执行以下操作:linear
log
symlog
import matplotlib.pyplot as plt
ha = plt.subplot(111)
# Plot your spectrogram here...
ha.set_xscale('log')
编辑这似乎是一个已知问题。有可用的命令可以做到这一点,但不是以任何特别方便的方式(它应该只是specgram
函数的标志,或者set_xscale
应该set_yscale
工作)。但是,有一种方法可以做到这一点:
而不是使用matplotlib.pyplot.specgram
use matplotlib.mlab.specgram
。这会计算频谱图但不绘制它。然后,您可以使用matplotlib.pyplot.pcolor
或类似的功能来绘制频谱图。所以尝试类似:
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
# Set up your data here...
Pxx, freq, t = mlab.specgram(x) # Other options, such as NFFT, may be passed
# to `specgram` here.
ha = plt.subplot(111)
ha.pcolor(t, freq, Pxx)
ha.set_xscale('log')