如何在 Matplotlib 中关闭子图的轴

Suraj Joshi 2023年1月30日 2020年6月9日
  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() 方法。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

相关文章 - Matplotlib Axes