2011-05-13 12 views
15

Sorumu nasıl daha açık bir şekilde söyleyeceğimi bilmiyorum. Temel olarak, bir örnek/pencere ile sınırlı PyPlot nedir? Çalıştığım herhangi bir hack veya geçici çözüm, programımın donmasına veya ikinci pyplot penceresinin birincisi kapanıncaya kadar kuyruğa alınmasına neden olur. Her figür gui'nin mainloop girmek için ihtiyacı olduğu,Birden çok PyPlot penceresine sahip olmak mümkün mü? Yoksa subplots ile sınırlı mıyım?

import matplotlib.pyplot as plt 

plt.plot(range(10)) 

plt.figure() 
plt.plot(range(10), 'ro-') 

plt.figure(), plt.plot(...) 

plt.show() # only do this once, at the end 

varsayılan piton tercüman bu çalıştırıyorsanız, bu işe yaramaz:

cevap

32

Tabii, sadece yeni bir şekil açın. Bir şeyi interaktif bir kabukta çalıştırmak istiyorsanız, IPython'a bakın. Bunu normal olarak çalıştırırsanız (yani dosyayı bir dosyaya koyun ve python filename.py numaralı telefonu arayın) yine de iyi çalışır.

+5

Bu yanıtında örtük (ve ben kaçırmışsınız) sonunda sadece bir kere 'plt.show()' demelisiniz. Bu daha ayrıntılı olarak http://stackoverflow.com/a/2399978/527489 adresinde ele alınmıştır. Plt.show() öğesini birden çok kez çağırırsanız, yine de OP'nin söylediği sıraya girer (önceki pencere kapanıncaya kadar her pencereyi engeller). – sage

+0

Şekil, fig.ion() 'veya global olarak uygulanan" ion() "gibi ayrı bir etkileşimli mod var mı? – CMCDragonkai

1

Kullanım plt.figure() ve pencere sabittir böylece belirli sayıda kullanın:

plt.figure(200) 
plt.plot(x) 
plt.show() 

ve başka arsa için, farklı bir sayı kullanın:

plt.figure(300) 
plt.plot(y) 
plt.show() 
İlgili konular