如何“消耗”一个情节,以便在我show()时它不存在?

时间:2013-02-01 22:37:39

标签: matplotlib

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

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 vs. def。我确信这很简单,但我找不到 - 在开始第二个情节之前我想要什么神奇的咒语?

2 个答案:

答案 0 :(得分:2)

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

如果您不想保留任何数字,

plt.close('all')

将关闭所有现有数字。如果你只想关闭当前数字,你可以

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

如果你这样做

fig = plt.figure()

您可以创建其他数字并使用

关闭它们
plt.close(fig.number)

答案 1 :(得分:1)

您还可以显示单个数字:

在matplotlib 1.2.0上如果我这样做

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

仅显示第二个数字