清除Matplotlib

时间:2017-11-14 10:09:31

标签: matplotlib subplot

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

创建
ax = fig1.add_subplot(221)

然后我通过

在每个子图中绘制内容
im=ax.plot(x,y)

并通过

添加一些轴标签
ax.set_xlabel('xlabel')

我想完全清除一个特定的子图,如When to use cla(), clf() or close() for clearing a plot in matplotlib?中所述。但问题是ax.cla()ax.clear()似乎只清除了绘图中的数据,而没有删除轴,轴刻度标签等。另一方面plt.clf()清除整个图形。介于两者之间吗?类似clf的命令可以清除子图中的所有内容,包括轴标签?或者我只是以错误的方式使用命令?

1 个答案:

答案 0 :(得分:9)

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

enter image description here