在 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()
输出
广告