如何使用Python绘制像这样的2D矩阵A[i,j]
:
i
是x轴j
是y轴A[i,j]
是一个0到100之间的值,必须用颜色绘制(例如:0 =蓝色,100 =红色)是否有Python功能?
(注意:我不想要为我做频谱图的功能,例如specgram
,因为我想自己计算信号的FFT;因此我只需要一个绘制矩阵的函数用颜色)
答案 0 :(得分:6)
让Z
成为数组,这是我最终使用的内容:
plt.imshow(np.transpose(Z), extent=[0,4.2,0,48000], cmap='jet',
vmin=-100, vmax=0, origin='lowest', aspect='auto')
plt.colorbar()
plt.show()
注意:
'jet'
是问题图片中显示的色彩映射,另请参阅these colormaps
设置origin='lowest'
与将np.transpose(Z)
替换为np.transpose(Z)[::-1,]
vmin
,vmax
给出比例(此处示例中为0到-100 dB)
extent
给出x轴(此处为0至4.2秒)和y轴(0至48000 Hz)的限制(在此示例中,我绘制的是4.2秒的频谱图)样本率96Khz的长音频文件
如果未设置aspect='auto'
,则情节将非常薄且非常高(由于4.2与48000相比!)