在 Python Matplotlib 中绘制子图上的网格


我们可以使用 Python Matplotlib 中的 **plt.subplot()** 或 **plt.subplots()** 方法创建子图网格。'子图' 指的是单个图形中多个绘图的集合,其中每个子图都是一个轴对象。

我们可以通过将多个轴中的 **脊柱可见性设置为 false** 来创建多个子图。

在子图上绘制网格

在子图上绘制网格所涉及的步骤如下。

  • 设置图形参数

  • 使用 **subplots()** 方法创建子图

  • 将脊柱设置为 false

  • 共享 x 轴

  • 使用 **show()** 方法显示图形

设置图形参数

从下面的代码中,**'plt.rcParams'** 在 Matplotlib 中充当字典变量,它保存绘图的默认设置。**"figure.figsize"** 将设置图形的默认大小 (7.50, 3.50),而 **"figure.autolayout"** 将自动调整子图的参数。

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

创建子图

通过使用 **plt.subplots()** 创建图形和子图网格。

fig, (ax1, ax2) = plt.subplots(nrows=2)

将脊柱可见性设置为 False

它指的是隐藏边界线的能力,通过将脊柱可见性设置为 **'false'**,我们可以使特定的脊柱不可见。

从下面的代码中,循环将隐藏 **'ax3'** 的脊柱,**'ax3.tick_params'** 用于修改刻度的外观。

for _, spine in ax3.spines.items():
   spine.set_visible(False)

ax3.tick_params(labelleft=False, labelbottom=False, left=False, right=False)

共享 X 轴和添加网格

**ax3.get_shared_x_axes().join(ax3, ax1)** 表示 'ax1' 和 'ax3' 将通过共享 x 轴水平对齐。

ax3.get_shared_x_axes().join(ax3, ax1)
ax3.grid(axis="x")

显示图形

要显示包含所有子图的图形,可以使用 **plt.show()**。

plt.show()

示例

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, (ax1, ax2) = plt.subplots(nrows=2)
ax3 = fig.add_subplot(111, zorder=-1)

for _, spine in ax3.spines.items():
   spine.set_visible(False)

ax3.tick_params(labelleft=False, labelbottom=False, left=False, right=False)
ax3.get_shared_x_axes().join(ax3, ax1)
ax3.grid(axis="x")

ax1.grid()
ax2.grid()

plt.show()

输出


更新于: 2024-09-10

7K+ 次查看

启动你的 职业生涯

通过完成课程获得认证

立即开始
广告