matplotlibのスペクトログラムにyscaleを追加すると何も表示されない
python matplotlibでスペクトログラムのy軸(周波数)を対数表示したいのですが、yscale("log")を追加したところ、なにも表示されなくなりました。
コードは以下のようになります
import wave
import struct
from pylab import *
if __name__ == "__main__":
# WAVEファイルから波形データを取得
name=sin.wave
wf = wave.open("ファイル名", "rb")
data = wf.readframes(wf.getnframes())
data = frombuffer(data, dtype="int16")
length = float(wf.getnframes()) / wf.getframerate() # 波形長さ(秒)
# FFTのサンプル数
N = 512
# FFTで用いるハミング窓
hammingWindow = np.hamming(N)
# スペクトログラムを描画
yscale('log')
grid(which="both")
pxx, freqs, bins, im = signal.specgram(data, NFFT=N, Fs=wf.getframerate(), noverlap=120, window=hammingWindow)
axis([0, 1, 0, 10000])
yscale("log")
xlabel("time [second]")
ylabel("frequency [Hz]")
show()