如何使用 Python 绘制A[i,j]
这样的二维矩阵:
i
是 x 轴j
是 y 轴A[i,j]
是一个介于 0 和 100 之间的值,必须由颜色绘制(例如:0=蓝色,100=红色)
有没有一个 Python 函数呢?
(注意:我不想要一个为我绘制频谱图的函数,例如specgram
,因为我想自己计算信号的 FFT;因此我只需要一个用颜色绘制矩阵的函数)
如何使用 Python 绘制A[i,j]
这样的二维矩阵:
i
是 x 轴j
是 y 轴A[i,j]
是一个介于 0 和 100 之间的值,必须由颜色绘制(例如:0=蓝色,100=红色)有没有一个 Python 函数呢?
(注意:我不想要一个为我绘制频谱图的函数,例如specgram
,因为我想自己计算信号的 FFT;因此我只需要一个用颜色绘制矩阵的函数)
让我们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'
是在问题图像中看到的颜色图,另请参阅这些颜色图
设置origin='lowest'
与替换具有相同的np.transpose(Z)
效果np.transpose(Z)[::-1,]
vmin
,vmax
给出刻度(在示例中为 0 到 -100 dB)
extent
给出 x 轴(此处为 0 到 4.2 秒)和 y 轴(0 到 48000 Hz)的限制(在此示例中,我正在绘制采样率为 96Khz 的 4.2 秒长的音频文件的频谱图)
如果aspect='auto'
未设置,则情节将非常薄且非常高(由于 4.2 vs. 48000 !)