所以我发现以下代码吐出了频谱图。但是,我想通过色彩映射或其他方法为它添加一些随机颜色。我已经阅读了cmap文档并且没有理解。
代码:
import matplotlib.pyplot as plt
from scipy.io import wavfile
def graph_spectrogram(wav_file):
rate, data = get_wav_info(wav_file)
nfft = 256
fs = 256
pxx, freqs, bins, im = plt.specgram(data, nfft,fs)
plt.axis('off')
plt.savefig('sp_xyz.png',
dpi=100, # Dots per inch
frameon='false',
aspect='normal',
bbox_inches='tight',
pad_inches=0)
plt.show()
def get_wav_info(wav_file):
rate, data = wavfile.read(wav_file)
return rate, data
if __name__ == '__main__': # Main function
wav_file = 'song.wav'
graph_spectrogram(wav_file)
提前感谢您的帮助!
答案 0 :(得分:0)
您可以在specgram命令本身中添加testOptions {
unitTests {
includeAndroidResources = true
}
}
参数。请参阅specgram docs。您可以从Colormaps reference中选择适合您的颜色图。示例命令是:
cmap
如果需要,您还可以在侧面添加pxx, freqs, bins, im = plt.specgram(data, nfft, fs, cmap='plasma')
,显示每种颜色的含义。