所以我发现下面的代码可以输出频谱图。但是,我想通过颜色图或其他方法向其添加一些随机颜色。我读过 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)
预先感谢您的帮助!
您可以在 Specgram 命令本身中添加 cmap
参数。请参阅specgram docs 。您可以从Colormaps reference中选择适合您的色彩图。 。一个示例命令是:
pxx, freqs, bins, im = plt.specgram(data, nfft, fs, cmap='plasma')
如果需要,您还可以在侧面添加一个颜色条
,显示每种颜色的含义。
我是一名优秀的程序员,十分优秀!