Matplotlib:重新打开封闭的数字?

kef*_*ich 7 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/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
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个带有小部件的图形,因此可以使用一种解决方法(只需创建一个新图形),但我想知道该figure实例在关闭后是否完全没用.

vex*_*ace 0

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

  • 事实上,这根本不是真的。关闭图形会破坏 gui 工具包的(具体取决于后端)窗口对象,但不会破坏图形对象。图形对象仍然存在,您仍然可以保存它(例如“fig.savefig(...)”在您关闭图形后仍然可以完美工作。) (6认同)
  • 然而,我指的是通过 gui 关闭图形,而不是通过调用 `fig.close()` (这会破坏东西)。 (2认同)