如何在 Matplotlib 中關閉子圖的軸

Suraj Joshi 2023年1月30日
  1. matplotlib.axes.Axes.axis()
  2. matplotlib.axes.Axes.set_axis_off()
  3. matplotlib.pyplot.axis()
  4. get_xaxis().set_visible()get_yaxis().set_visible()
如何在 Matplotlib 中關閉子圖的軸

我們可以使用軸物件的 axis()set_axis_off() 方法來關閉 Matplotlib 中的子圖的軸。我們也可以使用 pyplot 物件的 axis() 方法關閉軸。特別是要關閉 X 軸的軸,我們使用 axes.get_xaxis().set_visible(),特別是關閉 Y 軸的軸,我們使用 axis.get_yaxis().set_visible() 方法。

matplotlib.axes.Axes.axis()

要關閉子圖的軸,我們將 off 作為引數傳遞給 matplotlib.axes.Axes.axis() 方法。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)

fig, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y1)
ax[0, 0].set_title("Sine function")
ax[0, 0].axis("off")

ax[0, 1].plot(x, y2)
ax[0, 1].set_title("Cosine function")
ax[0, 1].axis("off")

ax[1, 0].plot(x, y3)
ax[1, 0].set_title("Sigmoid function")
ax[1, 0].axis("off")

ax[1, 1].plot(x, y4)
ax[1, 1].set_title("Exponential function")
ax[1, 1].axis("off")

fig.tight_layout()
plt.show()

輸出:

使用軸物件軸關閉 Matplotlib 中子圖的軸

在這裡,我們使用 axes.axis("off") 方法關閉每個子圖的軸。

matplotlib.axes.Axes.set_axis_off()

我們使用 matplotlib.axes.Axes.set_axis_off() 將 x 和 y 軸關閉也會影響軸線,刻度線,刻度標籤,網格和軸標籤。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)

fig, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y1)
ax[0, 0].set_title("Sine function")
ax[0, 0].set_axis_off()

ax[0, 1].plot(x, y2)
ax[0, 1].set_title("Cosine function")
ax[0, 1].set_axis_off()

ax[1, 0].plot(x, y3)
ax[1, 0].set_title("Sigmoid function")
ax[1, 0].set_axis_off()

ax[1, 1].plot(x, y4)
ax[1, 1].set_title("Exponential function")
ax[1, 1].set_axis_off()

fig.tight_layout()
plt.show()

輸出:

使用 set_axis_off 為 axes 物件關閉 Matplotlib 中子圖的座標軸

matplotlib.pyplot.axis()

如果一個圖形中只有一個圖,我們可以通過將 off 作為引數傳遞給 matplotlib.pyplot.axis() 方法。但是,如果圖形包含多個子圖,則此方法僅關閉最後一個子圖的軸。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y = np.sin(x)

plt.plot(x, y)
plt.axis("off")
plt.show()

輸出:

使用繪圖物件的軸關閉 Matplotlib 中子繪圖的軸

get_xaxis().set_visible()get_yaxis().set_visible()

我們可以通過將 False 作為引數傳遞給 get_xaxis().set_visible() 來關閉 X 軸。為了關閉 Y 軸,我們將 False 作為引數傳遞給 get_yaxis().set_visible()。我們可以使用此函式關閉單軸。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 1 / (1 + np.exp(-x))
y4 = np.exp(x)

fig, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y1)
ax[0, 0].set_title("Sine function")
ax[0, 0].get_xaxis().set_visible(False)
ax[0, 0].get_yaxis().set_visible(False)

ax[0, 1].plot(x, y2)
ax[0, 1].set_title("Cosine function")
ax[0, 1].get_xaxis().set_visible(False)
ax[0, 1].get_yaxis().set_visible(False)

ax[1, 0].plot(x, y3)
ax[1, 0].set_title("Sigmoid function")
ax[1, 0].get_xaxis().set_visible(False)
ax[1, 0].get_yaxis().set_visible(False)

ax[1, 1].plot(x, y4)
ax[1, 1].set_title("Exponential function")
ax[1, 1].get_xaxis().set_visible(False)
ax[1, 1].get_yaxis().set_visible(False)

fig.tight_layout()
plt.show()

輸出:

使用 set_visible 方法關閉 Matplotlib 中子圖的軸

但是,此方法對圖框沒有影響。要關閉框架,我們將關鍵字引數 frameon = False 傳遞給 plt.axes() 方法。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Matplotlib Axes