首页 > 解决方案 > 绘制频谱图但返回奇怪的结果

问题描述

我已经使用matplotlib.pyplot.specgram函数将一些音频转换为频谱图图像。

对图像进行一些操作后,现在我想将其保存为图像文件。

我的简单想法是,由于数据已经是 numpy 数组,我可以绘制它们。

代码是:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import imageio

im = imageio.imread(path/0.png')
plt.plot(im)
plt.show()

但是,它会返回非常奇怪的图像,如图所示。

在此处输入图像描述

  1. 图像看起来很奇怪,显然没有被识别为频谱图

  2. 原图是带形状的灰度图(256, 128),怎么返回的图有不同的颜色?

  3. 我现在该怎么办?是不是参数设置错误导致了结果?

标签: pythonmatplotlibsignal-processing

解决方案


类似于https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectrogram.html中的演示,您应该使用 plt.pcolormesh 函数而不是 plt.plot。目前,您正在分别绘制频谱图的每条线。


推荐阅读