如何在 Matplotlib 中關閉子圖的軸
Suraj Joshi
2023年1月30日
2020年6月9日
-
matplotlib.axes.Axes.axis()
-
matplotlib.axes.Axes.set_axis_off()
-
matplotlib.pyplot.axis()
-
get_xaxis().set_visible()
和get_yaxis().set_visible()
我們可以使用軸物件的 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()
輸出:
在這裡,我們使用 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()
輸出:
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()
輸出:
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()
輸出:
但是,此方法對圖框沒有影響。要關閉框架,我們將關鍵字引數 frameon = False
傳遞給 plt.axes()
方法。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn