"% Matplotlib इनलाइन" का उद्देश्य


482

क्या कोई मुझे समझा सकता है कि वास्तव में इसका उपयोग क्या है %matplotlib inline?


22
यह एक मैजिक फंक्शन है जो एक नोटबुक में फिगर को प्रस्तुत करता है (फिगर ऑब्जेक्ट के डंप को प्रदर्शित करने के बजाय)। एक सरल Matplotlib ट्यूटोरियल यहाँ पाया जाता है data-blogger.com/2017/11/15/…
www.data-blogger.com

6
आप उपलब्ध बैकेंड जांच कर सकते हैं (जैसे inline) दर्ज करके: %matplotlib --list
लुइस

जवाबों:


285

%matplotlibIPython में एक मैजिक फंक्शन है। सुविधा के लिए आपको पढ़ने के लिए संबंधित दस्तावेज यहाँ उद्धृत करूँगा:

IPython में पूर्वनिर्धारित 'मैजिक फ़ंक्शंस' का एक सेट है जिसे आप कमांड लाइन स्टाइल सिंटैक्स के साथ कॉल कर सकते हैं। दो प्रकार के जादूगर होते हैं, रेखा-उन्मुख और कोशिका-उन्मुख। लाइन मैजिक्स% वर्ण के साथ उपसर्ग किए जाते हैं और OS कमांड-लाइन कॉल की तरह काम करते हैं: उन्हें एक तर्क के रूप में मिलता है बाकी लाइन, जहां तर्क को कोष्ठक या उद्धरण के बिना पारित किया जाता है। रेखा के जादूगर परिणाम लौटा सकते हैं और एक असाइनमेंट के दाहिने हाथ की ओर में इस्तेमाल किया जा सकता है। सेल मैजिक्स एक डबल %% के साथ उपसर्ग कर रहे हैं, और वे ऐसे कार्य हैं जो एक तर्क के रूप में न केवल शेष पंक्ति में आते हैं, बल्कि एक अलग तर्क में इसके नीचे की रेखाएं भी हैं।

%matplotlib inline matplotlib के बैकएंड को 'इनलाइन' बैकएंड पर सेट करता है :

इस बैकएंड के साथ, प्लॉटिंग कमांड्स का आउटपुट, ज्यूपिटर नोटबुक जैसे फ्रंटलाइन के भीतर इनलाइन प्रदर्शित होता है, सीधे कोड सेल के नीचे जो इसे निर्मित करता है। परिणामस्वरूप भूखंडों को फिर नोटबुक दस्तावेज़ में संग्रहीत किया जाएगा।

Using इनलाइन ’बैकएंड का उपयोग करते समय, कोड के बगल में, आपके matplotlib ग्राफ को आपकी नोटबुक में शामिल किया जाएगा। यह भी पढ़ने के लायक हो सकता है कि अपने कोड में इसका उपयोग कैसे करें पर संदर्भ के लिए IPython नोटबुक matplotlib प्लॉट इनलाइन कैसे बनाएं

आप के रूप में अच्छी अन्तरक्रियाशीलता चाहते हैं, आप उपयोग कर सकते हैं nbagg बैकएंड साथ %matplotlib notebook(IPython 3.x में) के रूप में वर्णित, यहाँ


4
% matplotlib इनलाइन ^

4
@ जड्डा क्या आप आईपीथॉन का इस्तेमाल कर रहे हैं? यदि नहीं, तो आपको एक सिंटैक्स त्रुटि मिलेगी, क्योंकि यह वैध CPython (पायथन के लिए 'मानक' दुभाषिया) नहीं है। जब तक आप एक IPython नोटबुक का उपयोग नहीं कर रहे हैं, तब तक इसका उपयोग करने का कोई मतलब नहीं है, क्योंकि पूरे बिंदु को नोटबुक के साथ भूखंडों को इनलाइन करना है।
औरोरा 0001

हाँ। मैं स्पाइडर आईडीई (एनाकोंडा का हिस्सा) में टेन्सरफ्लो ऑब्जेक्ट डिटेक्शन एपीआई को लागू करने के लिए उपयोग कर रहा हूं

3
उस स्थिति में, @ जादा, ऐसा लगता है कि आपको एक नया प्रश्न पूछना है। आपको सभी प्रासंगिक विवरणों को वहां शामिल करना चाहिए ताकि आप इस उत्तर की टिप्पणियों की तुलना में अपने प्रश्न पर अधिक ध्यान दे सकें। सौभाग्य।
औरोरा 0001

2
ठीक है, लेकिन क्या विकल्प है: अगर कोई ऐसा जादू सक्रिय नहीं है तो मैं कैसे भूखंडों को देख सकता हूं?
जाकल

77

बशर्ते आप IPython चला रहे हों, %matplotlib inlineआपके प्लॉट आउटपुट प्रदर्शित होंगे और नोटबुक में संग्रहीत होंगे।

प्रलेखन के अनुसार

इसे सेट करने के लिए, किसी भी प्लॉटिंग या आयात के matplotlibप्रदर्शन से पहले आपको इसे निष्पादित करना होगा %matplotlib magic command। यह सही ढंग से हाथ से काम करने के लिए IPython के लिए आवश्यक पीछे के दृश्यों का सेटअप करता है matplotlib; हालाँकि, यह वास्तव में किसी भी पायथन आयात कमांड को निष्पादित नहीं करता है, अर्थात, नामस्थान में कोई नाम नहीं जोड़े जाते हैं।

IPython द्वारा प्रदान किया गया एक विशेष रूप से दिलचस्प बैकएंड, inlineबैकएंड है। यह केवल Jupyter नोटबुक और Jupyter QtConsole के लिए उपलब्ध है। इसे निम्नानुसार लगाया जा सकता है:

%matplotlib inline

इस बैकएंड के साथ, प्लॉटिंग कमांड्स का आउटपुट, ज्यूपिटर नोटबुक जैसे फ्रंटलाइन के भीतर इनलाइन प्रदर्शित होता है, सीधे कोड सेल के नीचे जो इसे निर्मित करता है। परिणामस्वरूप भूखंडों को फिर नोटबुक दस्तावेज़ में संग्रहीत किया जाएगा।


32

यदि आप अपने जुपिटर नोटबुक में भूखंड जोड़ना चाहते हैं, तो %matplotlib inlineएक मानक समाधान है। और अन्य मैजिक कमांड हैं matplotlibजो जुपिटर के भीतर इंटरएक्टिवली इस्तेमाल करेंगे ।

%matplotlib: कोई भी pltप्लॉट कमांड अब एक फिगर विंडो को खोलने का कारण बनेगा, और प्लॉट को अपडेट करने के लिए आगे कमांड को चलाया जा सकता है। कुछ परिवर्तन स्वचालित रूप से आकर्षित नहीं होंगे, अपडेट को मजबूर करने के लिए, उपयोग करेंplt.draw()

%matplotlib notebook: नोटबुक के भीतर एम्बेडेड इंटरैक्टिव भूखंडों को जन्म देगा, आप आंकड़ा ज़ूम और आकार बदल सकते हैं

%matplotlib inline: केवल नोटबुक में स्थिर चित्र बनाएं


7

IPython 5.0 और matplotlib 2.0 के साथ शुरू करने से आप IPython के विशिष्ट जादू के उपयोग से बच सकते हैं और उपयोग कर सकते हैं matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()जिनके पास IPython के बाहर काम करने के फायदे भी हैं।

ipython डॉक्स


मुझे लगता है कि यह बैकएंड बदलने से अलग है। जब तक बैकएंड नहीं है inline, बाहरी खिड़कियों में भूखंड उत्पन्न होते हैं और आपको नोटबुक में उन्हें दिखाने के लिए डिस्प्ले () का उपयोग करने की आवश्यकता होती है।
विंसेंज़ू

4

यदि आपको नहीं पता कि बैकएंड क्या है, तो आप इसे पढ़ सकते हैं: https://matplotlib.org/tutorials/introductory/usage.html#backends

कुछ लोग पाइथन शेल से अंतःक्रियात्मक रूप से मेटप्लोटलिब का उपयोग करते हैं और जब वे कमांड टाइप करते हैं तो विंडो को पॉप अप करने की साजिश रचते हैं। कुछ लोग जुपिटर नोटबुक चलाते हैं और त्वरित डेटा विश्लेषण के लिए इनलाइन भूखंडों को आकर्षित करते हैं। दूसरों ने समृद्ध अनुप्रयोगों के निर्माण के लिए wxpython या pygtk जैसे ग्राफिकल यूजर इंटरफेस में matplotlib को एम्बेड किया। संख्यात्मक सिमुलेशन से पोस्टस्क्रिप्ट छवियों को उत्पन्न करने के लिए कुछ लोग बैच लिपियों में matplotlib का उपयोग करते हैं, और फिर भी अन्य लोग ग्रेफ़िक रूप से रेखांकन करने के लिए वेब एप्लिकेशन सर्वर चलाते हैं। इन सभी उपयोग के मामलों का समर्थन करने के लिए, matplotlib विभिन्न आउटपुट को लक्षित कर सकता है, और इनमें से प्रत्येक क्षमता को बैकएंड कहा जाता है; "फ्रंटेंड" कोड का सामना करने वाला उपयोगकर्ता है, यानी, प्लॉटिंग कोड, जबकि "बैकएंड" आंकड़े बनाने के लिए सभी कड़ी मेहनत करता है।

इसलिए जब आप% matplotlib इनलाइन लिखते हैं, तो यह इनलाइन बैकएंड को सक्रिय करता है। जैसा कि पिछले पोस्टों में चर्चा की गई है:

इस बैकएंड के साथ, प्लॉटिंग कमांड्स का आउटपुट, ज्यूपिटर नोटबुक जैसे फ्रंटलाइन के भीतर इनलाइन प्रदर्शित होता है, सीधे कोड सेल के नीचे जो इसे निर्मित करता है। परिणामस्वरूप भूखंडों को फिर नोटबुक दस्तावेज़ में संग्रहीत किया जाएगा।


4

इसका सीधा सा मतलब है कि जो भी ग्राफ हम अपने कोड के एक हिस्से के रूप में बना रहे हैं, वह एक ही नोटबुक में दिखाई देगा और अलग-अलग विंडो में नहीं होगा जो कि होता है अगर हमने इस मैजिक स्टेटमेंट का इस्तेमाल नहीं किया है।


3

यह स्पष्ट करने के लिए:

अगर आपको यह पसंद नहीं है:

यहाँ छवि विवरण दर्ज करें

जोड़ना %matplotlib inline

यहाँ छवि विवरण दर्ज करें

और वहां आपके पास आपके ज्यूपिटर नोटबुक में है।


2

टी एल; डॉ

%matplotlib inline - आउटपुट इनलाइन प्रदर्शित करता है


IPython कर्नेल में कोड निष्पादित करके प्लॉट प्रदर्शित करने की क्षमता होती है। IPython कर्नेल को इस कार्यक्षमता प्रदान करने के लिए matplotlib प्लॉटिंग लाइब्रेरी के साथ मूल रूप से काम करने के लिए डिज़ाइन किया गया है।

%matplotlibएक मैजिक कमांड है जो IPython के लिए सही तरीके से हाथ से काम करने के लिए आवश्यक बैक-ऑफ-द-सीन सेटअप करता है matplotlib; यह किसी भी पायथन आयात कमांड को निष्पादित नहीं करता है, अर्थात, नामस्थान में कोई नाम नहीं जोड़ा जाता है।

अलग विंडो में आउटपुट प्रदर्शित करें

%matplotlib

आउटपुट इनलाइन प्रदर्शित करें

(केवल ज्यूपिटर नोटबुक और जुपिटर QtConsole के लिए उपलब्ध)

%matplotlib inline

इंटरैक्टिव बैकएंड के साथ प्रदर्शित करें

(मान्य मान 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template')

%matplotlib gtk

उदाहरण - GTK3Agg - GTK 3.x कैनवस को एक एग प्रदान करना (PyGObject और pycairo या cairocffi की आवश्यकता है)।

Matplotlib इंटरैक्टिव बैकेंड के बारे में अधिक जानकारी: यहाँ


के साथ शुरू करने IPython 5.0और matplotlib 2.0आप IPython के विशिष्ट जादू और उपयोग से बच सकते हैं matplotlib.pyplot.ion()/ matplotlib.pyplot.ioff() जिनके पास IPython के बाहर काम करने के फायदे भी हैं।

देखें: IPython रिच आउटपुट - इंटरएक्टिव प्लॉटिंग


असली noob सवाल यहाँ, क्षमा करें .... "IPython कर्नेल" क्या है और "मैजिक कमांड" क्या है। क्या पायथन अचानक मुझ पर विभाजित हो गया है और गैर-पायथोनिक हो गया है? मैंने इन अवधारणाओं के बारे में कभी नहीं सुना है।
lb_so

एक अजगर नोटबुक (ipynb) के लिए - एक ipython kernal या jupyter kernal परियोजना द्वारा उपयोग किया जाने वाला अजगर (और निर्भरता) का संस्करण है। आप एक ज्यूपिटर नोटबुक शुरू कर सकते हैं और फिर कोशिकाओं को अजगर के एक अलग कॉन्फ़िगरेशन के साथ चलाने के लिए बदल सकते हैं और पर्यावरण चर को कॉन्फ़िगर कर सकते हैं और बहुत कुछ।
एनी मेनन

@Ib_so मैजिक कमांड एक ipython / jupyter फीचर है। यहाँ और पढ़ें
एनी मेनन

0

बशर्ते आप Jupyter नोटबुक चला रहे हों,% matplotlib इनलाइन कमांड आपके प्लॉट आउटपुट को नोटबुक में दिखाई देगा, इसे स्टोर भी किया जा सकता है।


-8

यह लिखना अनिवार्य नहीं है। यह मेरे लिए ( %matplotlib) जादू समारोह के बिना ठीक काम किया । मैं Sipder संकलक का उपयोग कर रहा हूं, एक जो एनाकोंडा के साथ आता है।


13
स्पाइडर एक आईडीई है, संकलक नहीं।
मैथ्यू ब्रूचर

3
हालांकि आपका जवाब ओपी के सवाल का जवाब नहीं था, लेकिन इसने मेरा जवाब दिया। धन्यवाद।
EngrStudent
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.