matplotlib.pyplot
是 Python 中一个用于创建静态、动画和交互式可视化的库,特别适合用于科学计算。它提供了一个类似于 MATLAB 的绘图框架,简化了图表的创建和自定义。以下是对 matplotlib.pyplot
库的详细介绍。
基本概念
- pyplot:
matplotlib.pyplot
是 Matplotlib 库的一个子库,提供了一个类似 MATLAB 的绘图 API。通过这个 API,可以方便地创建各种类型的图表。 - Figure:图形的容器,可以包含一个或多个子图(
Axes
)。 - Axes:图的实际区域,一个 Figure 可以包含多个 Axes。
- Axis:指的是 x 轴和 y 轴,每个 Axes 对象有两个 Axis 对象(一个用于 x 轴,一个用于 y 轴)。
安装
如果尚未安装 Matplotlib,可以通过以下命令安装:
pip install matplotlib
基本用法
以下是一些常用的 matplotlib.pyplot
操作。
导入库
import matplotlib.pyplot as plt
创建简单的折线图
# 准备数据
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
# 创建图形
plt.figure()
# 绘制图形
plt.plot(x, y)
# 添加标题和标签
plt.title("Simple Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 显示图形
plt.show()
创建多个子图
# 准备数据
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [30, 25, 20, 10]
# 创建图形和子图
fig, axs = plt.subplots(2)
# 绘制第一个子图
axs[0].plot(x, y1)
axs[0].set_title('First Subplot')
# 绘制第二个子图
axs[1].plot(x, y2)
axs[1].set_title('Second Subplot')
# 显示图形
plt.tight_layout()
plt.show()
添加图例
# 准备数据
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [30, 25, 20, 10]
# 创建图形
plt.figure()
# 绘制图形
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
# 添加标题和标签
plt.title("Line Plot with Legend")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 添加图例
plt.legend()
# 显示图形
plt.show()
常见图表类型
折线图(Line Plot)
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.title("Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
散点图(Scatter Plot)
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.scatter(x, y)
plt.title("Scatter Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
条形图(Bar Plot)
x = ['A', 'B', 'C', 'D']
y = [10, 20, 25, 30]
plt.bar(x, y)
plt.title("Bar Plot")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
直方图(Histogram)
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
plt.hist(data, bins=4)
plt.title("Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
饼图(Pie Chart)
labels = ['A', 'B', 'C', 'D']
sizes = [10, 20, 30, 40]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("Pie Chart")
plt.show()
自定义图表
Matplotlib 提供了丰富的自定义选项,可以对图表进行详细的调整和美化。
自定义颜色和样式
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y, color='green', linestyle='--', marker='o')
plt.title("Custom Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
添加注释
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.title("Annotated Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 添加注释
plt.annotate('Highest Point', xy=(4, 30), xytext=(3, 25),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()
设置坐标轴范围和刻度
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.title("Custom Axis Range and Ticks")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 设置坐标轴范围
plt.xlim(0, 5)
plt.ylim(0, 35)
# 设置刻度
plt.xticks([0, 1, 2, 3, 4, 5])
plt.yticks([0, 10, 20, 30, 40])
plt.show()
保存图表
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.title("Save Plot Example")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 保存图表为 PNG 文件
plt.savefig('plot.png')
# 显示图表
plt.show()