📜  matplotlib 不同大小的子图 (1)

📅  最后修改于: 2023-12-03 15:17:35.278000             🧑  作者: Mango

matplotlib 不同大小的子图

在使用 matplotlib 时,我们会需要将一个大的图分成几个小的图来展示不同的数据或者进行对比分析。在这种情况下,就需要使用 matplotlib 的子图功能。

对于子图,我们可以在单个图中创建不同大小的子图。本文将介绍如何使用 matplotlib 创建不同大小的子图,并且以示例代码的形式来讲解。

代码实现

首先,我们需要导入 matplotlib 库和 numpy 库,并生成一些数据以进行演示。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)

接下来,我们将创建一个 $2 \times 2$ 的子图数组,然后在其中的每个子图上绘制不同的图形。

fig, ax = plt.subplots(2, 2, figsize=(8, 6))

ax[0, 0].plot(x, y)
ax[0, 0].set_title('Subplot 1')

ax[0, 1].scatter(x[::5], y[::5])
ax[0, 1].set_title('Subplot 2')

ax[1, 0].hist(y, bins=20)
ax[1, 0].set_title('Subplot 3')

ax[1, 1].plot(x, np.cos(x**2))
ax[1, 1].set_title('Subplot 4')

plt.tight_layout()
plt.show()

代码解释:

  • fig, ax = plt.subplots(2, 2, figsize=(8, 6)) 创建了一个 $2 \times 2$ 的子图数组,大小为 8 x 6。
  • ax[0, 0].plot(x, y) 在子图数组的左上角添加一张图。
  • ax[0, 1].scatter(x[::5], y[::5]) 在子图数组的右上角添加一张图。
  • ax[1, 0].hist(y, bins=20) 在子图数组的左下角添加一张图。
  • ax[1, 1].plot(x, np.cos(x**2)) 在子图数组的右下角添加一张图。
  • plt.tight_layout() 调整子图之间的间距。
  • plt.show() 显示图形。
结论

通过以上的代码和解释,我们可以看到如何使用 matplotlib 创建不同大小的子图。这种功能可以让我们在一个图像上同时展示多个数据,并进行对比分析。有了这个功能,我们可以更好地展示我们的数据分析结果,使得我们的分析更直观。