[Python] आईपीथॉन नोटबुक matplotlib प्लॉट इनलाइन कैसे करें


Answers

यदि आपका matplotlib संस्करण 1.4 से ऊपर है, तो इसका उपयोग करना भी संभव है

आईपीथन 3.x और ऊपर

%matplotlib notebook

import matplotlib.pyplot as plt

पुराने संस्करण

%matplotlib nbagg

import matplotlib.pyplot as plt

दोनों एनबीएजीजी बैकएंड को सक्रिय करेंगे, जो अंतःक्रियाशीलता को सक्षम बनाता है।

Question

मैं मैकोज़ एक्स पर पाइथन 2.7.2 और आईपीथन 1.1.0 के साथ आईपीथॉन नोटबुक का उपयोग करने की कोशिश कर रहा हूं।

मैं इनलाइन दिखाने के लिए matplotlib ग्राफिक्स नहीं मिल सकता है।

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline  

मैंने %pylab inline और --pylab=inline कमांड लाइन तर्क --pylab=inline भी कोशिश की है लेकिन इससे कोई फर्क नहीं पड़ता है।

x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show()

इनलाइन ग्राफिक्स के बजाय, मुझे यह मिलता है:

<matplotlib.figure.Figure at 0x110b9c450>

और matplotlib.get_backend() दिखाता है कि मेरे पास 'module://IPython.kernel.zmq.pylab.backend_inline' बैकएंड है।




मुझे यकीन नहीं है कि joaquin ने एक टिप्पणी के रूप में अपना जवाब क्यों पोस्ट किया, लेकिन यह सही जवाब है:

ipython notebook --pylab inline साथ ipython notebook --pylab inline शुरू करें

संपादित करें: ठीक है, अब इसे नीचे टिप्पणी के अनुसार बहिष्कृत किया गया है। % पिलैब जादू का प्रयोग करें।




मुझे foobarbecue से सहमत होना है (मेरे पास पर्याप्त पद नहीं है कि वह अपनी पोस्ट के तहत टिप्पणी डालने में सक्षम हो):

अब यह अनुशंसा की जाती है कि पायथन नोटबुक तर्क को शुरू नहीं किया गया है --pylab , और फर्नांडो पेरेज़ (ipythonnb के निर्माता) के अनुसार %matplotlib inline प्रारंभिक नोटबुक कमांड होना चाहिए।

यहां देखें: http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb




आप इस समस्या को सिंटैक्स गलती के साथ अनुकरण कर सकते हैं, हालांकि, %matplotlib inline समस्या को हल नहीं करेगा।

प्लॉट बनाने के लिए सही तरीके से पहला उदाहरण। आपूर्ति की गई आयात और जादू के साथ सब कुछ काम करता है।

df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF'))

df_randNumbers1.ix[:,["A","B"]].plot.kde()

हालांकि, साजिश के प्रकार के अंत से () को छोड़कर आप कुछ हद तक संदिग्ध गैर-त्रुटि प्राप्त करते हैं।

अपमानजनक कोड:

df_randNumbers1.ix[:,["A","B"]].plot.kde

उदाहरण त्रुटि:

<bound method FramePlotMethods.kde of <pandas.tools.plotting.FramePlotMethods object at 0x000001DDAF029588>>

इस एक पंक्ति संदेश के अलावा, आपके पास सिंटैक्स त्रुटि बनाने के लिए कोई स्टैक ट्रेस या अन्य स्पष्ट कारण नहीं है। साजिश प्रिंट नहीं करता है।




जब तक आपके पास ग्राफ के निर्माण के बाद plt.show() है, plt.show() तक आप उबंटू पर %matplotlib inline को हटा सकते हैं।