清除 Matplotlib 中的子图

Clearing a subplot in Matplotlib

我在图 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 的命令?还是我只是以错误的方式使用了这些命令?

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