1

我想创建一个情节,也许放弃它,然后创建另一个情节。

import matplotlib.pyplot as plt

plt.plot(xxx,yyy, ...)
if certain_conditions:
    return or otherwise get out of here
plt.show()

...sometime later, someplace far away...
# looking for incantation to make gone of the existing unshown plot
plt.plot(abc,def, ...)
plt.show()

这些代码片段实际上相距甚远,在不同的对象或模块中,无论如何。当第一个情节被放弃时,第二段代码中的 show() 将向我展示超出预期的内容;我只想看看 abc 与 def 的对比。我确定这很简单,但我没有找到它 - 在开始第二个情节之前我想要什么魔法咒语?

4

2 回答 2

2

有很多方法可以做到这一点,“最好的”是使用 OO 接口而不是状态机接口。

如果你不想保留任何数字,你可以做

plt.close('all')

这将关闭所有现有的数字。如果你只想关闭当前的图,你可以这样做

plt.close(plt.gca().number)

如果你这样做

fig = plt.figure()

您可以创建其他图形并关闭它们

plt.close(fig.number)
于 2013-02-01T22:45:37.423 回答
1

您还可以显示单个数字:

如果我这样做,在 matplotlib 1.2.0 上

fig1 = plt.figure(1)
fig2 = plt.figure(2)
fig2.show()

只显示第二个图

于 2013-02-01T22:49:13.757 回答