Axes.set_xscale関数および関数を使用して、軸のスケーリングを変更できます。Axes.set_yscaleどちらもlinear、logまたはsymlogを入力として受け入れます。したがって、プロットを対数スケールの x 軸に変更するには、次のようにします。
import matplotlib.pyplot as plt
ha = plt.subplot(111)
# Plot your spectrogram here...
ha.set_xscale('log')
編集これは既知の問題のようです。これを行うために使用できるコマンドがありますが、特に便利な方法ではありません (関数へのフラグであるspecgramか、機能する必要がset_xscaleありset_yscaleます)。ただし、これを行う方法があります。
matplotlib.pyplot.specgramuseを使用する代わりに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')