67

我试图找出一种在 matplotlib 中删除(动态)子图的方法。我看到他们有一个remove方法,但我得到了错误

NotImplementedError: cannot remove artist

我很惊讶我在任何地方都找不到这个。有谁知道如何做到这一点?

from matplotlib import pyplot as plt

fig, axs = plt.subplots(1,3)

axs[0].plot([1,2],[3,4])
axs[2].plot([0,1],[2,3])

plt.draw()
plt.tight_layout()

在此处输入图像描述

4

2 回答 2

139

使用fig.delaxesplt.delaxes删除不需要的子图

fig, axs = plt.subplots(1,3)
axs[0].plot([1,2],[3,4])
axs[2].plot([0,1],[2,3])

fig.delaxes(axs[1])

plt.draw()
plt.tight_layout()

在此处输入图像描述

于 2013-02-04T20:07:10.467 回答
27
ax.set_visible(False)

在大多数情况下就足够了。

于 2018-01-15T02:51:08.340 回答