清除Matplotlib中的子批次

清除Matplotlib中的子批次,matplotlib,subplot,Matplotlib,Subplot,我在图1中有许多子图,通过 ax = fig1.add_subplot(221) 然后我在每个子地块中通过 im=ax.plot(x,y) 并通过添加一些轴标签 ax.set_xlabel('xlabel') 然后,我希望完全清除特定子批次,如中所述。然而,问题是ax.cla()和ax.clear()似乎只从绘图中清除数据,而不删除轴、轴刻度标签等。另一方面plt.clf()清除整个图形。是否有介于两者之间的东西?类似clf的命令,用于清除子批中的所有内容,包括轴标签?还是我只是以错误的方

我在图1中有许多子图,通过

ax = fig1.add_subplot(221)
然后我在每个子地块中通过

im=ax.plot(x,y)
并通过添加一些轴标签

ax.set_xlabel('xlabel')
然后,我希望完全清除特定子批次,如中所述。然而,问题是
ax.cla()
ax.clear()
似乎只从绘图中清除数据,而不删除轴、轴刻度标签等。另一方面
plt.clf()
清除整个图形。是否有介于两者之间的东西?类似clf的命令,用于清除子批中的所有内容,包括轴标签?还是我只是以错误的方式使用了这些命令?

  • ax.clear()
    清除轴。也就是说,它将删除轴上的所有设置和数据,这样您就只剩下一个轴,就像刚刚创建的一样

  • ax.axis(“关闭”)
    关闭轴,以便隐藏所有轴的脊椎和标签

  • ax.set\u visible(False)
    使整个轴不可见,包括其中的数据

  • ax.remove()
    从图形中删除轴

完整示例:

import matplotlib.pyplot as plt

fig,axes = plt.subplots(2,3)
for ax in axes.flat:
    ax.plot([2,3,1])

axes[0,1].clear()
axes[1,0].axis("off")
axes[1,1].set_visible(False)
axes[0,2].remove()

plt.show()

非常感谢
remove()
完成了我想要的功能,但是其他选项也会很有用。