如何为我的频谱图添加颜色?

时间:2017-12-14 03:46:54

标签: python matplotlib colors colormap spectrogram

所以我发现以下代码吐出了频谱图。但是,我想通过色彩映射或其他方法为它添加一些随机颜色。我已经阅读了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)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以在specgram命令本身中添加testOptions { unitTests { includeAndroidResources = true } } 参数。请参阅specgram docs。您可以从Colormaps reference中选择适合您的颜色图。示例命令是:

cmap

如果需要,您还可以在侧面添加pxx, freqs, bins, im = plt.specgram(data, nfft, fs, cmap='plasma') ,显示每种颜色的含义。