2012-03-17 10 views
15

बंद हो जाती है, मैं प्लॉट प्रदर्शित करते समय matplotlib "show" कमांड कमांड लाइन पर वापस लौटना चाहता हूं। आर जैसे अन्य प्लॉट पैकेज, ऐसा करें। लेकिन साजिश खिड़की बंद होने तक पिलैब लटकता है। उदाहरण के लिए:पिलैब matplotlib "शो" इंतजार करता है जब तक खिड़की

import pylab 
x = pylab.arange(0, 10, 0.1) 
y = pylab.sin(x) 
pylab.plot(x,y, 'ro-') 
pylab.show() # Python hangs here until the plot window is closed 

मैं जबकि कमांड लाइन प्रश्नों कर भूखंड देखने में सक्षम हो करना चाहते हैं। मैं पाइथन 2.6.6 के साथ डेबियन निचोड़ चला रहा हूँ। मेरे ~/.matplotlib/matplotlibrc शामिल

backend  : GTKAgg 

धन्यवाद!

+2

[आईपीथॉन] (http://ipython.org/) –

+0

का उपयोग करने का प्रयास करें, जिसका मतलब है कि आप multithreading प्राप्त करने के लिए 'ipython -pylab' का मतलब है। –

उत्तर

22

(interactive mode) pylab.show() कॉल से पहले जोड़ें। इससे UI को एक अलग थ्रेड में चलाया जाएगा और show पर कॉल तुरंत वापस आ जाएगा।

+1

धन्यवाद। अच्छा काम करता है। 'आयन()' के साथ, 'show() 'कमांड की आवश्यकता नहीं है। – Sullivan

+1

यह वास्तव में तुरंत लौटता है, लेकिन यह आंकड़ा क्यों "लटकता नहीं" दिखा रहा है –

5

आप

$ ipython --pylab 

रूप में चलाते हैं और

In [8]: x = arange(0,10,.1) 

In [9]: y = sin(x) 

In [10]: plot(x,y,'ro-') 

Out[10]: [<matplotlib.lines.Line2D at 0x2f2fd50>] 

In [11]: 

यह आपको ऐसे मामलों में जहां आप अन्य भागों को संशोधित करने या अधिक प्लॉट करने के लिए चाहते हो जाएगा के लिए शीघ्र देता है के रूप में अपने कोड को चलाने के लिए की जरूरत है।

+0

धन्यवाद। यह अच्छी तरह से काम करता है। – Sullivan

संबंधित मुद्दे