清除Matplotlib中的子图

Wol*_*ger 5 matplotlib subplot

我有一些图中的子图fig1,通过创建

ax = fig1.add_subplot(221)
Run Code Online (Sandbox Code Playgroud)

然后,我通过每个子图绘制内容

im=ax.plot(x,y)
Run Code Online (Sandbox Code Playgroud)

并通过添加一些轴标签

ax.set_xlabel('xlabel')
Run Code Online (Sandbox Code Playgroud)

然后我想完全清除一个特定的子图,如何使用cla(),clf()或close()来清除matplotlib中的图?.然而问题是,ax.cla()并且ax.clear()似乎只清除了绘图中的数据,而没有移除轴,轴刻度标签等.另一方面plt.clf()清除整个图形.介于两者之间吗?类似clf的命令可以清除子图中的所有内容,包括轴标签?或者我只是以错误的方式使用命令?

Imp*_*est 13

  • ax.clear()清除轴.也就是说,它会从轴中删除所有设置和数据,这样就可以保留轴,就像刚刚创建的那样.

  • ax.axis("off") 关闭轴,使所有轴刺和蜱标签隐藏.

  • ax.set_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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述