Matplotlib 绘制多图学习笔记
什么是 Matplotlib?
Matplotlib 是一个 Python 数据可视化库,它提供了绘制多种类型的图表(如折线图、散点图、条形图等)的功能,支持各种操作系统和图像格式。
绘制多图的意义
在进行数据分析时,我们通常需要比较不同变量之间的关系。绘制多个图表可以帮助我们更好地理解数据之间的关系,发现隐藏的规律,作出更加准确的分析。
如何绘制多图
Matplotlib 提供了丰富的 API 来绘制多个图表。下面是一些常用的绘图函数。
subplot 函数
subplot 函数可以将多个图表画在同一张纸上,它接受三个参数:行数、列数和当前子图的位置。
pythonCopy Codeimport matplotlib.pyplot as plt
# 创建 2 行 2 列的子图,当前子图位置为 1
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3, 4], [10, 20, 30, 40])
# 当前子图位置为 2
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3, 4], [5, 10, 15, 20])
# 当前子图位置为 3
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3, 4], [20, 30, 25, 35])
# 当前子图位置为 4
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3, 4], [25, 15, 10, 5])
plt.show()
运行以上代码,会生成一个 2 行 2 列的图表,每个子图上都有一条折线图。
subplots 函数
subplots 函数可以一次性地创建多个子图,并将它们储存在一个列表中。它接受两个参数:行数和列数。
pythonCopy Codeimport matplotlib.pyplot as plt
# 创建一个 2 行 2 列的子图
fig, axs = plt.subplots(2, 2)
# 在第一行第一列的子图中绘制折线图
axs[0, 0].plot([1, 2, 3, 4], [10, 20, 30, 40])
# 在第一行第二列的子图中绘制散点图
axs[0, 1].scatter([1, 2, 3, 4], [5, 10, 15, 20])
# 在第二行第一列的子图中绘制条形图
axs[1, 0].bar(['A', 'B', 'C', 'D'], [3, 7, 4, 6])
# 在第二行第二列的子图中绘制饼图
axs[1, 1].pie([15, 30, 45, 10])
plt.show()
运行以上代码,会生成一个 2 行 2 列的图表,每个子图上有不同类型的图表。
实例
下面是一个实例,展示如何使用 subplot 函数和 subplots 函数绘制多个图表。
pythonCopy Codeimport numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
# 绘制第一个图表,包含两条折线
plt.subplot(2, 1, 1)
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))
# 绘制第二个图表,包含一个散点图和一条直线
fig, axs = plt.subplots(1, 2)
axs[0].scatter(x, np.sin(x))
axs[1].plot(x, np.cos(x))
plt.show()
运行以上代码,会生成一个包含三个子图的图表:第一个子图包含两条折线图,第二个子图包含一个散点图和一条直线,第三个子图为空。