2013-07-09 6 views
5

मान लें कि मेरे पास कुछ डेटा है, और मैं इसे कस्टम साजिश फ़ंक्शन (myplot()) में पास करके इस डेटा का एक साजिश बनाना चाहता हूं। मैं myplot() में matplotlib के मॉड्यूल का उपयोग कर रहा हूँ।एक फ़ंक्शन कैसे पाइथन (matplotlib का उपयोग कर) में एक आकृति वापस करने के लिए?

मैं myplot() को एक आकृति में हैंडल वापस करने के लिए चाहता हूं, और जब मैं इस फ़ंक्शन को कॉल करता हूं तो प्लॉट प्रदर्शित नहीं करता। IPython से नमूना कोड और आउटपुट यहां दिया गया है।

enter image description here

मैं इस बारे में दो प्रश्न हैं:

  1. क्यों मैं अभी भी एक साजिश देख पा रहे हैं, भले ही मैं च को myplot() के उत्पादन में बताए रहा हूँ?
  2. जब मैं myplot() को एक चर के आउटपुट को असाइन कर रहा हूं, तो मुझे इस प्लॉट को दबाने की क्या ज़रूरत है?
+0

यह केवल एक आईपथन नोटबुक सुविधा है, है ना? क्योंकि जब मैं आईडीएलई में आंकड़े पास करता हूं तो मुझे साजिश नहीं दिखाई देती है। –

उत्तर

5

प्रारंभ IPython साथ

ipython notebook

बजाय

ipython notebook --pylab=inline

enter image description here

+1

मुझे लगता है कि आपको गैर-इनलाइन-मोडस में संपूर्ण नोटबुक-सत्र शुरू करने की आवश्यकता नहीं है। आप निम्नलिखित कमांड के साथ इनलाइन बैकएंड-व्यवहार को नियंत्रित कर सकते हैं। '% config इनलाइनबैकेंड.क्लोज़_फिगर्स = झूठी यह आपके भूखंडों को बंद करने से रोक देगा (इस प्रकार ब्राउज़र के अंदर दिखाया गया है)। – ala

1

आप गैर इनलाइन काम करने में पूरी नोटबुक शुरू करने के लिए नहीं करना चाहते हैं आप बस निम्नलिखित कोड का उपयोग कर सकते हैं:

%config InlineBackend.close_figures = False 

def myplot(t,x): 
    fig = figure() 
    x = plot(t,x) 
    fig.savefig('plot.png') # This is just to show the figure is still generated 
    return fig 

t = arange(0,6,0.01) 
x = sin(t) 

f = myplot(t,x) 
+0

यह काम नहीं किया। मुझे अभी भी वही आउटपुट मिलता है जैसा कि मेरे प्रश्न में दिखाया गया है। – siva82kb

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