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.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')