Matplotlib:是否重新打开闭合地物?

Matplotlib:是否重新打开闭合地物?,matplotlib,Matplotlib,是否可以在matplotlib中重新打开闭合图形(即用户X'd的图形)?以下代码显示了天真的方法: In [14]: fig = figure(10) In [15]: close(fig) In [16]: fig.show() Exception in Tkinter callback Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.6/lib/pyth

是否可以在matplotlib中重新打开闭合图形(即用户X'd的图形)?以下代码显示了天真的方法:

In [14]: fig = figure(10)

In [15]: close(fig)

In [16]: fig.show()

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 495, in callit
    func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/backends/backend_tkagg.py", line 253, in idle_draw
    self.draw()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/backends/backend_tkagg.py", line 239, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/backends/tkagg.py", line 19, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode, id(bbox_array))
TclError: this isn't a Tk application

我正在尝试创建一个包含小部件的图形,因此有一个解决方法(只需创建一个新图形),但我想知道
图形
实例关闭后是否完全无用。

是的,关闭图形会完全删除它。

事实上,这根本不是真的。关闭图形会破坏gui工具包的窗口对象(具体取决于后端),但不会破坏图形对象。figure对象仍然存在,您仍然可以保存它(例如,
fig.savefig(…)
在关闭figure后仍然可以正常工作。)但是,我指的是通过gui关闭figure对象,而不是调用
fig.close()
(这会破坏一切)@JoeKington-这正是我感兴趣的情况:当用户通过GUI关闭窗口时。我把上面的MWE,因为我假设关闭(图)和“按下X”做同样的事情。如果我按x并尝试
fig.show()
,我会得到相同的异常。@keflavich-恐怕我没有答案。然而,我怀疑任何答案都是非常特定于gui后端的(并且可能不可能与所有后端一起),并且正如您所提到的,重新创建图形将是最简单的方法。