在python中利用matplotlib库实现音频频谱显示功能

靖明谈科技 2025-04-11 03:13:20

这段时间在研究如何在python中实现展示音频频谱的功能,从deepseek生成的代码中,我发现了Matplotlib这个库,顺藤摸瓜就有了这篇文章,一边学习,一边分享。先来看看最终实现的效果。

利用matplotlib库开发音频频谱实时显示功能

本例用到如下库

# 导入核心库

import matplotlib.pyplot as plt

# 将图形嵌入GUI界面

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvasfrom matplotlib.figure import Figure

# 信号处理函数,用于计算信号的频谱图。

from scipy.signal import spectrogram

效果如下

Matplotlib 是 Python 中最经典、使用最广泛的 2D 绘图库,专注于生成高质量的静态、动态或交互式数据可视化图表。以下是其核心功能简介:

核心功能

绘图类型丰富:支持线图、散点图、柱状图、直方图、饼图、等高线图、热图、频谱图、3D 图等。

高度可定制:可精细控制图表的所有元素(标题、坐标轴、图例、颜色、字体、网格等)。

多平台支持:生成的图表可保存为 PNG、PDF、SVG 等多种格式,或嵌入 GUI 应用(如 PyQt、Tkinter)和 Jupyter Notebook。

核心组件

pyplot 模块,适合快速绘图。

示例1代码如下import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 1])plt.show()

只需要上面简单的代码,就可以生成如下图形。

扩展功能

3D 绘图:通过 mpl_toolkits.mplot3d 绘制三维曲面、散点等。

图像处理:支持读取、显示和操作图像(如 plt.imshow())。

动画支持:通过 animation 模块创建动态图表。

与科学计算库集成:无缝兼容 NumPy、Pandas 数据结构。

示例2-绘制sin曲线import matplotlib.pyplot as pltimport numpy as np# 生成数据x = np.linspace(0, 2*np.pi, 100)y = np.sin(x)# 绘制图表plt.figure(figsize=(10, 5))plt.plot(x, y, label="sin(x)", color="red", linestyle="--")plt.title("Simple Sine Wave")plt.xlabel("x")plt.ylabel("y")plt.grid(True)plt.legend()plt.show()

效果如下

个人感受

经过初步学习,了解到到Matplotlib 这个库功能确实非常强大,特别在科学计算、信号、图像可视化、数据分析、绘制图表等方面具有强大的优势

0 阅读:0

靖明谈科技

简介:感谢大家的关注