Matplotlib中清除子图

32

我在一个名为fig1的图中有多个子图,是通过以下方式创建的:

ax = fig1.add_subplot(221)

然后,我通过以下方式在每个子图中绘制内容

im=ax.plot(x,y)

通过添加一些坐标轴标签来实现

ax.set_xlabel('xlabel')

我想要完全清除一个特定的子图,就像在matplotlib中清除绘图时何时使用cla()、clf()或close()中所描述的那样。但问题是,ax.cla()ax.clear()似乎只清除了绘图中的数据,而没有移除坐标轴、坐标轴刻度标签等。另一方面,plt.clf()则清除了整个图形。是否有介于两者之间的命令?类似于clf的命令,可以清除子图中的所有内容,包括坐标轴标签?还是我只是错误地使用了这些命令?

1个回答

57
  • 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()

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接