如何在 Matplotlib 中关闭子图的轴
Suraj Joshi
2024年2月15日
-
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()
方法。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn