2010-02-22 23 views
16

मैं चार्ट और ग्राफ को आकर्षित करने के लिए matplotlib का उपयोग कर रहा हूं।निष्पादन को अवरुद्ध किए बिना लाइनों की साजिश

जब मैं इस आदेश पर show() कमांड कोड का उपयोग कर चार्ट प्लॉट करता हूं।

मैं नए डेटा के साथ मूल्यों की अपनी सूची रीफ्रेश करना चाहता हूं, और पृष्ठभूमि पर छवि को ताज़ा करने के बजाय। ग्राफ के साथ खिड़की के हर बार बंद किए बिना कैसे करें? नीचे कोड मैं

import pylab 
a = (1,2,3,4) 
pylab.plot(a) 
pylab.show() # blocks here 
+0

क्या होगा यदि आप कॉल नहीं करते pylab.show(): वास्तव में यह जब पदावनत -pylab ध्वज का उपयोग कर सुझाव दिया है? – telliott99

+0

यदि आप अपनी समस्या हल करते हैं तो आप उत्तर में से एक को "स्वीकृत" (हरे रंग की चेक मार्क) के रूप में चिह्नित करना चाहते हैं। या शायद आपको अपना जवाब जोड़ना, अगर आपको कुछ और मिला। या यहां तक ​​कि संभवतः एक टिप्पणी, सभी को यह बताने के लिए कि कोई भी जवाब काम नहीं करता है। :) – EOL

+0

संभावित डुप्लिकेट [क्या matplotlib प्लॉट को अलग करने का कोई तरीका है ताकि गणना जारी रहे?] (Http://stackoverflow.com/questions/458209/is-there-a-way-to-detach-matplotlib- प्लॉट्स-द-द-द-गणना-जारी-जारी) – Wernight

उत्तर

12

आईपीथॉन में -pylab से शुरू हुआ यह ब्लॉक नहीं होना चाहिए।

अन्यथा: ion() के साथ आप इंटरैक्टिव मोड चालू करते हैं। show() अब आपके सिस्टम को अवरुद्ध नहीं करता है। प्रत्येक draw() या plot(x, y) ने अपनी साजिश अपडेट की।

ioff() इंटरैक्टिव मोड बंद कर देता है। उपयोगी यदि आप बहुत सारे डेटा जोड़ते हैं और प्रत्येक छोटे विवरण को अपडेट करना नहीं चाहते हैं।

यह भी देखें: http://www.scipy.org/Cookbook/Matplotlib/Animations

+0

यदि आधुनिक आईपीथॉन (जुपीटर) का उपयोग करना है, तो प्रति-नोटबुक '% pylab' कमांड के पक्ष में क्ली' -pylab' ध्वज को हटा दिया गया है। – tyleha

-1

उपयोग कर रहा हूँ इस -wthread (या -pylab) के विकल्प के साथ IPython लागू करके काम करता है है। यह अब show पर अवरुद्ध नहीं होगा। ,

pyplot.draw() 

एक plot() के बाद संभवतः इतनी के रूप में के लिए प्रतीक्षा करने से

raw_input("Press enter when done...") 

बाद:

3

आप IPython खोल का उपयोग नहीं कर रहे हैं, तो लेकिन बजाय एक कार्यक्रम चल रहा है, तो आप शायद क्या करना चाहते हैं कुछ और प्लॉट करने से पहले उपयोगकर्ता।

यदि आप अपने प्रोग्राम की शुरुआत में pyplot.ion() करते हैं, तो draw() कर अक्सर भी छोड़ा जा सकता है।

pyplot.show() वास्तव में एक अनंत लूप है जो मुख्य साजिश खिड़की (जैसे ज़ूमिंग, पैनिंग इत्यादि) में ईवेंट को संभालता है।

0

MacOS एक्स पर मैं यह है कि केवल अनब्लॉक करने एक सफेद स्क्रीन का उत्पादन समस्या थी। अंत में नोटबुक में सीधे% pylab का उपयोग करके @ टाइलेहा के सुझाव में मदद मिली।

bash:~/Projects/plyground $ python -m IPython notebook -pylab 
WARNING: `-pylab` flag has been deprecated. 
Use `--matplotlib <backend>` and import pylab manually. 
[E 21:09:05.446 NotebookApp] Support for specifying --pylab on the command line has been removed. 
[E 21:09:05.447 NotebookApp] Please use `%pylab` or `%matplotlib` in the notebook itself. 
संबंधित मुद्दे