2014-05-10 8 views
44

मैंने विंडोज 7 में पायथन (एक्स, वाई) 2.7.2.3 से 2.7.6.0 से अपग्रेड किया (और यह देखने में प्रसन्नता हुई कि मैं अंत में function_name? टाइप कर सकता हूं और ऑब्जेक्ट इंस्पेक्टर में फिर से डॉकस्ट्रिंग देख सकता हूं) लेकिन अब साजिश काम नहीं करती है यह अभ्यस्त है।स्पाइडर/आईपीथॉन/मैटलप्लिब में मैं फिर से इंटरैक्टिव प्लॉट कैसे प्राप्त करूं?

पहले (स्पाइडर 2.1.9, IPython 0.10.2, matplotlib 1.2.1), जब मैं this script साजिश रची, उदाहरण के लिए, यह subplots पक्ष-साथ एक इंटरैक्टिव विंडो में साजिश होगा:

enter image description here

अब (स्पाइडर 2.2.5, IPython 1.2.0, matplotlib 1.3.1) जब मैं चीजों को प्लॉट करने के लिए प्रयास करते हैं, यह छोटे इनलाइन PNG का रूप subplots करता है, जो एक change in IPython है:

tiny inline PNGs

इसलिए मैं विकल्पों में चला गया और यह पाया:

graphics options

जो कि मैं पुराने इंटरैक्टिव भूखंडों वापस प्राप्त कर सकते, 4 subplots के साथ कंधे-साथ दिखाया गया है कहने लगता, लेकिन जब मैं करने के लिए स्विच " स्वचालित ", और कुछ साजिश करने का प्रयास करें, यह कुछ भी नहीं करता है। बिल्कुल कोई प्लॉट नहीं।

अगर मैं क्यूटी को यह ड्रॉप-डाउन स्विच, या अनचेक "समर्थन को सक्रिय करें", यह केवल यह की पहली subplot, या भाग भूखंडों, और फिर बंद हो जाता है:

enter image description here

मैं कैसे मिलता है एक तरफ से 4 साइड-बाय-साइड सबप्लॉट का पुराना व्यवहार जिसमें मैं बातचीत कर सकता हूं?

+0

मुझे लगता है कि यह एक बग रिपोर्ट के रूप में pythonxy के रूप में जाना चाहिए। मेरा बेवकूफ अनुमान यह है कि वे वहां प्लॉटिंग का उपयोग कर रहे हैं ताकि वहां सब कुछ साजिश हो और उसके लिए बट में काट दिया जा सके (जो गलत लगता है, क्योंकि उनके पास अपना स्वयं का क्यूटी विजेट है)। – tacaswell

+1

@tcaswell "वे" कौन है और वे pyplot के बजाय क्या उपयोग करेंगे? – endolith

+0

वे लोग हैं जो पाइथोनक्सी बनाए रखते हैं और उन्हें पायलट स्टेट मशीन इंटरफ़ेस – tacaswell

उत्तर

3

टिप्पणियों में कहा गया है, समस्या आपकी लिपि में निहित है। असल में, 2 समस्याएं हैं:

  • एक matplotlib त्रुटि है, मुझे लगता है कि आप कहीं भी None के रूप में एक तर्क पारित कर रहे हैं। शायद डिफ़ॉल्ट डिक्शनरी के कारण?
  • प्रत्येक उप-स्थान के बाद आप show() पर कॉल करते हैं। show() को आपकी स्क्रिप्ट के अंत में एक बार बुलाया जाना चाहिए। वैकल्पिक इंटरैक्टिव मोड का उपयोग करना है, matplotlib के दस्तावेज़ में ion देखें।
61

बदलें स्वचालित करने के लिए बैकएंड:

उपकरण> Preferences> IPython कंसोल> ग्राफिक्स> ग्राफिक्स बैकएंड> बैकएंड: स्वचालित

तो पास और खुले स्पाइडर।

+13

समापन और उद्घाटन वास्तव में आवश्यक है। बस सोच रहा है कि यह डिफ़ॉल्ट मान क्यों नहीं है। – Mathias711

+5

इसके अलावा, किसी के भी अभी भी अपने भूखंडों को नहीं देख रहा है (जैसे मैं नहीं था), साजिश खिड़की चुपचाप दिखाई दे रही है _behind_ आपकी कंसोल विंडो (कम से कम यह विंडोज 10 पर स्पाइडर में है) ताकि आपको अपनी खिड़की के लिए शिकार करना पड़े। –

+1

इसे ढूंढने में परेशानी वाले लोगों के लिए, यह 'पायथन> वरीयताओं> आईपीथन कंसोल> ग्राफिक्स> ग्राफिक्स बैकएंड> बैकएंड पर स्थित है: स्वचालित ' – cameronroytaylor

8

आप स्पाइडर के आईपीथन कंसोल में built-in magic commands टाइप करके इसे तुरंत नियंत्रित कर सकते हैं, जो मुझे वरीयता मेनू से चुनने से तेज़ लगता है।

"स्वचालित" पर स्विच करने के लिए (यानी।इंटरैक्टिव) भूखंडों, टाइप करें:

%matplotlib auto 

फिर अगर आप वापस "इनलाइन" करने के लिए स्विच करना चाहते हैं, इस टाइप करें:

%matplotlib inline 

(नोट: इन आदेशों में गैर IPython शान्ति से काम नहीं करते)

+0

अजगर 3.6 में, मैं '' matplotlib इनलाइन फ़ाइल "", लाइन 1 % matplotlib इनलाइन ^ सिंटैक्स त्रुटि प्राप्त करते हैं। यह वाक्यविन्यास केवल ipython या Spyder के साथ मान्य है। – Karlo

+1

@Karlo कि त्रुटि एक पारंपरिक "अजगर" दुभाषिया से आशा की जाती है: –

+0

ठीक है, मैं इसे स्पाइडर में लेकिन पायथन कंसोल में उपयोग कर रहा था। वास्तव में, यह आईपीथन कंसोल में काम करता है। – Karlo

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