2012-03-08 14 views
6

Matplotlib'de kapalı bir şekil (yani X'd kullanıcı) yeniden açmak mümkün mü? Ben, içinde widget'larla bir rakam oluşturmak çalışıyorum böylece bir çözümün mevcut olduğu (sadece yeni çıkarmalarıiçin) ama figure olmadığını bilmek istiyorumMatplotlib: kapalı bir rakamı tekrar açmak mı istiyorsunuz?

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 

: Aşağıdaki kod naif yaklaşım gösterilmektedir Örnek kapatıldıktan sonra tamamen işe yaramaz.

+0

[Matplotlib: kapalı bir şeklin nasıl gösterileceği] olası bir kopyası (http://stackoverflow.com/questions/31729948/matplotlib-how-to-show-a-figure-that-has-been- kapalı) –

cevap

0

Evet, şeklin kapatılması tamamen silinir.

+3

Aslında, bu hiç de doğru değil. Bir rakamın kapatılması, gui araç setinin (tam olarak arka plana bağlı olan) pencere nesnesini yok eder, ancak şekil nesnesini yok eder. Rakam nesnesi hala var ve siz onu hala kaydedebilirsiniz (örn. Fig.savefig (...) 'rakamı kapattıktan sonra hala mükemmel şekilde çalışacaktır.) –

+2

Ancak, gui, fig.close() 'yi çağırmakla değil (Hangi şeyleri yok eder). –

+0

@JoeKington - Bu aslında ilgilendiğim durum: kullanıcı GUI aracılığıyla bir pencereyi kapattığında. Yukarıdaki MWE'yi koydum çünkü yakın (fig) ve "X'e basmak" aynı şeyi yapmıştı. X tuşuna basar ve fig.show() işlevini denediğimde aynı özel durumu alırım. – keflavich

İlgili konular