Matplotlib 是 Python 最著名的数据可视化库,它提供了一整套与 MATLAB 类似的绘图 API, 能够生成出版质量级别的图表,并且支持多种输出格式。无论是简单的线图还是复杂的多维可视化, 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 会自动选择坐标轴范围,并将点用直线连接。
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 的灵活性。
Matplotlib 提供了两种使用风格:pyplot(方便快捷)和面向对象(更精细控制)。 对于复杂图表或需要嵌入 GUI 的情况,推荐使用面向对象方式。例如:
fig, ax = plt.subplots() # 创建图形和坐标轴对象
ax.plot(x, y) # 在坐标轴上绘图
ax.set_title("面向对象示例")
plt.show()