matplotlib 是 Python 最常用的科学绘图库之一,提供了强大、灵活的 2D 与 3D 数据可视化功能。它最初由 John D. Hunter 于 2003 年开发,现已成为数据分析、科研绘图与报告展示的标准工具。该库可用于绘制从简单折线图到复杂统计图、3D 曲面、热力图等多种图形,并可输出高质量图片(PNG、SVG、PDF)用于论文或展示。
安装 matplotlib 库:
nginx
pip install matplotlib
常见应用场景:
(1)数据分析可视化:展示趋势、分布与异常点。
(2)科研绘图:生成出版级矢量图,支持 LaTeX 数学公式。
(3)统计分析与实验结果展示:绘制直方图、误差线、箱线图等。
(4)交互式分析:在 Jupyter Notebook 或 GUI 环境中实时调整图形。
(5)图像输出与自动化报告生成:结合脚本生成批量图表。
◆ ◆ ◆
核心概念
1、图形结构层次
🔹 Figure:整个画布对象。
🔹 Axes:具体绘图区域,一个 Figure 中可包含多个 Axes。
🔹 Artist:所有绘图元素的基础类,包括线条、文字、图例等。
2、两种绘图方式
🔹 Pyplot 接口(推荐初学者使用)
apache
import matplotlib.pyplot as pltplt.plot([1, 2, 3], [2, 4, 6])plt.show()
适合快速绘图。
🔹 面向对象 API(推荐专业绘图)
apache
fig, ax = plt.subplots()ax.plot([1, 2, 3], [2, 4, 6])fig.show()
适合多子图或复杂布局。
3、样式系统(Style)
使用 plt.style.use('ggplot') 或 plt.style.use('seaborn') 快速切换全局风格。
4、后端(Backend)
控制绘图的显示与输出方式,如 TkAgg、QtAgg、PDF、SVG。
◆ ◆ ◆
应用举例
例 1:折线图(Line Plot)
javascript
import matplotlib.pyplot as pltimport numpy as np
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
x = np.linspace(0, 10, 100)y = np.sin(x)plt.plot(x, y, label='sin(x)', color='blue')plt.title('正弦曲线示例')plt.xlabel('x')plt.ylabel('sin(x)')plt.legend()plt.show()
例 2:散点图(Scatter Plot)
javascript
import matplotlib.pyplot as pltimport numpy as np
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
x = np.random.rand(50)y = np.random.rand(50)plt.scatter(x, y, color='green', alpha=0.6)plt.title('随机散点分布')plt.show()
例 3:柱状图(Bar Chart)
javascript
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
categories = ['A', 'B', 'C', 'D']values = [12, 25, 30, 20]plt.bar(categories, values, color='orange')plt.title('类别统计结果')plt.show()
例 4:直方图(Histogram)
kotlin
import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
data = np.random.randn(200)plt.hist(data, bins=20, color='skyblue', edgecolor='black')plt.title('数据分布直方图')plt.show()
例 5:多子图(Subplots)
apache
import matplotlib.pyplot as pltimport numpy as np
x = np.linspace(0, 2*np.pi, 100)y1, y2 = np.sin(x), np.cos(x)
fig, axs = plt.subplots(2, 1)axs[0].plot(x, y1, color='red', label='sin(x)')axs[1].plot(x, y2, color='blue', label='cos(x)')axs[0].legend()axs[1].legend()plt.show()
◆ ◆ ◆
常用函数与方法速览
pyplot.plot(x, y, label=None, color=None, linestyle='-')
绘制折线图。
参数:
x, y:数据序列。
label:曲线标签(用于图例)。
color:线条颜色。
linestyle:线型(如 '-', '--', ':')。
返回:线对象列表。
pyplot.scatter(x, y, s=None, c=None, alpha=None)
绘制散点图。
参数:
x, y:数据点坐标。
s:点大小(可为单值或数组)。
c:颜色或颜色映射。
alpha:透明度(0--1)。
返回:PathCollection 对象。
pyplot.bar(x, height, color=None)
绘制垂直柱状图。
参数:
x:分类标签或索引。
height:每个柱的高度。
color:柱体颜色。
返回:BarContainer 对象。
pyplot.hist(data, bins=10, color=None, edgecolor=None)
绘制直方图。
参数:
data:待统计的数据序列。
bins:分组数量(默认 10)。
color:填充颜色。
edgecolor:边框颜色。
返回:包含计数、分组边界与补丁对象的元组。
pyplot.subplots(nrows=1, ncols=1, figsize=None)
创建多子图布局。
参数:
nrows, ncols:子图行数与列数。
figsize:图形大小(宽, 高)。
返回:(Figure, Axes) 元组。
pyplot.savefig(filename, dpi=300, bbox_inches='tight')
将当前图保存为文件。
参数:
filename:输出文件路径(如 "figure.png")。
dpi:分辨率(每英寸像素点)。
bbox_inches:边界调整选项。
返回:无。
pyplot.style.use(style_name)
设置全局绘图样式。
参数:
style_name:样式名称(如 'classic'、'seaborn'、'ggplot')。
返回:无。
◆ ◆ ◆
补充说明
1、matplotlib 支持中文显示,但需设置字体。
python
from matplotlib import font_manager
# 方法一:全局设置字体plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 使用黑体显示中文plt.rcParams['axes.unicode_minus'] = False # 正确显示负号
# 方法二:指定字体路径font_path = r"C:\Windows\Fonts\msyh.ttc" # Windows 示例,可换为 Linux/macOS 路径font_prop = font_manager.FontProperties(fname=font_path)
# 方法三:修改 Matplotlib 配置文件(matplotlibrc)
2、建议搭配 numpy 和 pandas 使用,更适合数据处理与可视化任务。
3、若需交互式图形可考虑 mpl_interactions、plotly 等扩展。
4、高级用户可转向 matplotlib 的面向对象接口,以实现复杂图表布局。
5、matplotlib 中还有 3D 绘图、动画制作(FuncAnimation)、样式模板(style.use())等高级用法。
📘 小结
matplotlib 是 Python 数据可视化的基础工具,功能全面、生态成熟。它既能快速生成探索性图形,也能制作出版级高质量可视化作品。
通过 pyplot 快速绘图接口与面向对象的绘图体系,matplotlib 可灵活地适配科研、工程、数据分析等多种应用场景,是每位 Python 开发者与数据分析师必备的绘图库。

"点赞有美意,赞赏是鼓励"