Matplotlib 绘制多图学习笔记

什么是 Matplotlib?

Matplotlib 是一个 Python 数据可视化库,它提供了绘制多种类型的图表(如折线图、散点图、条形图等)的功能,支持各种操作系统和图像格式。

绘制多图的意义

在进行数据分析时,我们通常需要比较不同变量之间的关系。绘制多个图表可以帮助我们更好地理解数据之间的关系,发现隐藏的规律,作出更加准确的分析。

如何绘制多图

Matplotlib 提供了丰富的 API 来绘制多个图表。下面是一些常用的绘图函数。

subplot 函数

subplot 函数可以将多个图表画在同一张纸上,它接受三个参数:行数、列数和当前子图的位置。

pythonCopy Code
import 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 Code
import 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 Code
import 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()

运行以上代码,会生成一个包含三个子图的图表:第一个子图包含两条折线图,第二个子图包含一个散点图和一条直线,第三个子图为空。