Matplotlib 简介

Matplotlib 是 Python 最著名的数据可视化库,它提供了一整套与 MATLAB 类似的绘图 API, 能够生成出版质量级别的图表,并且支持多种输出格式。无论是简单的线图还是复杂的多维可视化, Matplotlib 都能轻松应对。

📌 为什么选择 Matplotlib?

✔️
高度自定义 – 几乎图表的每个元素(颜色、线型、坐标轴、字体等)都可调整。
✔️
多种输出格式 – PNG、PDF、SVG、EPS 等,适合出版和网页。
✔️
与 NumPy / Pandas 无缝集成 – 直接处理数组和 DataFrame。
✔️
丰富的文档和社区 – 数以千计的示例和 Stack Overflow 解答。

⚙️ 安装 Matplotlib

使用 pip 安装(推荐):

pip install matplotlib

如果你使用 Anaconda,可以通过 conda 安装:

conda install matplotlib

🚀 第一个绘图示例

让我们从一个最简单的折线图开始。下面的代码绘制了一条随 x 递增的直线:

import matplotlib.pyplot as plt

# 准备数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 创建图形
plt.plot(x, y)

# 添加标题和坐标轴标签
plt.title("第一个 Matplotlib 图表")
plt.xlabel("X 轴")
plt.ylabel("Y 轴")

# 显示图表
plt.show()

运行上述代码,你会看到一个简单的直线图。Matplotlib 会自动选择坐标轴范围,并将点用直线连接。

🧩 核心模块:pyplot

matplotlib.pyplot 是一个类似 MATLAB 的接口,它提供了一系列函数来快速创建图表。 大多数入门绘图都通过 plt 完成。例如 plt.plot()plt.scatter()plt.bar() 等。

🌊 绘制更复杂的图形:正弦曲线

结合 NumPy 可以轻松绘制数学函数曲线:

import numpy as np
import matplotlib.pyplot as plt

# 生成 0 到 10 之间的 100 个点
x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y, linestyle='--', color='red', marker='o', markersize=4)
plt.title("正弦曲线")
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.grid(True)
plt.show()

这个例子中我们设置了虚线样式、红色、圆点标记,并添加了网格,展示 Matplotlib 的灵活性。

📐 面向对象方式 vs. pyplot

Matplotlib 提供了两种使用风格:pyplot(方便快捷)面向对象(更精细控制)。 对于复杂图表或需要嵌入 GUI 的情况,推荐使用面向对象方式。例如:

fig, ax = plt.subplots()  # 创建图形和坐标轴对象
ax.plot(x, y)              # 在坐标轴上绘图
ax.set_title("面向对象示例")
plt.show()

📚 学习资源