在 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+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.