2011-04-04 21 views
5

मैं पाइथन के matplotlib का उपयोग कर समोच्च और contourf कार्यों का उपयोग कर कुछ contours करने के लिए कर रहा हूँ। शो का उपयोग करते समय वे सभी ठीक काम करते हैं, लेकिन जब मैं किसी विधि के अंदर draw() का उपयोग करने का प्रयास करता हूं, तो मुझे matplotlib विंडो मिलती है लेकिन ग्राफ़ नहीं। शो() कॉल कोड पर और बाद में एक अलग तरीके से किया जाएगा, और मैं उस समय एक ग्राफ दिखाना चाहता हूं जब यह ड्रॉ() के साथ किया जाता है, तब तक बाद में शो() तक इंतजार नहीं करना पड़ता है। मैं क्या गलत कर रहा हूँ?matplotlib ड्रॉ कुछ भी नहीं दिखा रहा है

धन्यवाद।

उत्तर

2

आईआईआरसी, आपको कई बार fig.show() कॉल करने में सक्षम होना चाहिए। इसके अलावा, ipython (ipython -pylab) और http://matplotlib.sourceforge.net/users/shell.html

+0

आपके उत्तर के लिए धन्यवाद। समस्या यह है कि मैं एक इंटरैक्टिव वातावरण का उपयोग नहीं कर रहा हूं - यह एक स्क्रिप्ट में अनुकरण है। और कॉलिंग के साथ समस्या कई बार दिखाती है कि शो() अवरुद्ध हो रहा है, और मुझे यह चाहिए कि प्रोग्राम बिना उपयोगकर्ता हस्तक्षेप के ग्राफ को प्रदर्शित करने के बाद चल रहा है। – Ivan

+0

आह, ठीक है। निश्चित नहीं है, तो। यादृच्छिक विचार: यदि आप साजिश सुविधाओं के साथ ऐसा नहीं कर सकते हैं, तो आप हमेशा एक छवि फ़ाइल में ग्राफ निर्यात कर सकते हैं और लगभग – dfb

+0

ठीक है, वैसे भी धन्यवाद। मैं बिल्कुल ठीक से बचने की कोशिश कर रहा हूं - मुझे यह तय करने के लिए एक ग्राफ की आवश्यकता है कि परिणाम सहेजे जाएंगे या नहीं। – Ivan

7

का उपयोग करके जांचें क्या आपने ion() का उपयोग करने पर इंटरैक्टिव मोड चालू कर दिया है? पर OSX मेरे लिए निम्नलिखित काम करता है, टी बैकएंड का उपयोग कर और खोल के कमांड लाइन से चल रहा है:

import matplotlib.pyplot as plt 

plt.ion() 
plt.figure() 
for i in range(10): 
    plt.plot([i], [i], 'o') 
    plt.draw() 
raw_input("done >>") 

यही है, के रूप में यह प्रत्येक पाश करता है, आप भूखंड परिवर्तन देख (यानी, यह फिर से ताज़ा हो जाता है) के रूप में प्रत्येक बिंदु जोड़ा गया है। यहां, बीटीडब्ल्यू, अगर मैं plt.ioff() पर कॉल करता हूं, तो मुझे चित्र या कोई अपडेट नहीं दिखाई देता है।

+0

यदि मैं उस कोड को चलाता हूं तो मुझे कर्नेल क्रैश मिलता है ... :( –

+1

@andi: मुझे लगता है कि शायद आपके पर्यावरण के साथ कुछ गलत तरीके से सेटअप किया गया है। मैंने इसे फिर से चलाने के लिए इसे फिर से चलाया और यह अभी भी मेरे लिए काम करता है, लेकिन अब, 4+ साल बाद एक अलग कंप्यूटर, संस्करण, पर्यावरण इत्यादि का उपयोग करना। यदि आप इसे काम नहीं कर पा रहे हैं, तो मैं सुझाव देता हूं कि अधिक जानकारी के साथ एक अलग प्रश्न पूछें (उदाहरण के लिए, plt.ion() अन्य मामलों में आपके लिए काम करता है, आप किस संस्करण का उपयोग कर रहे हैं, आदि) – tom10

+0

आप बिल्कुल सही हैं! एनाकोंडा को पुनर्स्थापित करें और यह पूरी तरह से काम करता है। इसके बारे में क्षमा करें। –

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