如何使用 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'
是在问题图像中看到的颜色图,另请参见 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)的限制(在这个例子中我绘制了频谱图采样率为 96Khz 的 4.2 秒长的音频文件)如果
aspect='auto'
未设置,绘图将非常薄且非常高(由于 4.2 对 48000!)
关于python - 矩阵的二维图,颜色类似于频谱图中的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069545/