प्लॉट करने के लिए अनुशंसित तरीका कौन सा है: मैटप्लोटलिब या पाइलैब? [बन्द है]


88

मैं देखता हूं कि मैं या तो पायथन में साजिश कर सकता हूं :

import matplotlib
matplotlib.pyplot.plot(...)

या:

import pylab
pylab.plot(...)

ये दोनों समान matplotlib प्लॉटिंग कोड का उपयोग करते हैं ।

तो, इनमें से कौन-सा मैटलपॉटलिब डेवलपर्स / डॉक्स वर्तमान में प्लॉट करने के बेहतर तरीके के रूप में सुझाते हैं? क्यों?



9
स्वयं संदर्भात्मक दोहराव?
मैड फिजिसिस्ट

4
इसे राय के आधार पर बंद नहीं किया जाना चाहिए। अब Matplotlib डॉक्स से एक स्पष्ट जवाब है: हमेशा उपयोगmatplotlib.pyplot
बर्नहार्ड

जवाबों:


104

आधिकारिक डॉक्स: माटप्लोटलिब, पाइलपोट और पाइलैब: वे कैसे संबंधित हैं?

उन दोनों आयातों को उबालना बिल्कुल एक ही काम करते हैं और ठीक उसी कोड को चलाएंगे, यह मॉड्यूल आयात करने के सिर्फ अलग तरीके हैं।

यह भी ध्यान दें कि matplotlibदो इंटरफ़ेस लेयर्स हैं, एक स्टेट-मशीन लेयर द्वारा प्रबंधित pyplotऔर OO इंटरफ़ेस pyplotको सबसे ऊपर बनाया गया है, देखें कि मैं एक pyplot फंक्शन को फिगर इंस्टेंस से कैसे जोड़ सकता हूं?

pylabएक एकल नाम स्थान में सहायक कार्यों ( pyplotराज्य मशीन समारोह, के अधिकांश numpy) के एक पूरे समूह को थोक में आयात करने का एक साफ तरीका है। इसका मुख्य कारण यह है (मेरी समझ में) ipythonएक बहुत अच्छा इंटरैक्टिव शेल बनाने के लिए काम करना है जो MATLAB को अधिक-या-कम प्रतिकृति बनाता है (संक्रमण को आसान बनाने के लिए और क्योंकि यह चारों ओर खेलने के लिए अच्छा है)। देखें pylab.pyऔरmatplotlib/pylab.py

कुछ स्तर पर, यह विशुद्ध रूप से स्वाद का मामला है और आप जो कर रहे हैं उस पर थोड़ा निर्भर करता है।

यदि आप एक gui में एम्बेड नहीं कर रहे हैं (या तो बल्क स्क्रिप्ट के लिए गैर-संवादात्मक बैकएंड का उपयोग कर रहे हैं या प्रदान किए गए इंटरैक्टिव बैकेंड में से एक का उपयोग कर रहे हैं) तो विशिष्ट बात यह है कि

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

जो नाम स्थान को प्रदूषित नहीं करता है। मुझे यह पसंद है इसलिए मैं इस बात पर नज़र रख सकता हूं कि सामान कहां से आया है।

यदि तुम प्रयोग करते हो

ipython --pylab

यह चलने के बराबर है

from pylab import * 

अब यह अनुशंसा की जाती है कि ipythonआप नए संस्करणों के लिए उपयोग करें

ipython --matplotlib

जो इंटरएक्टिव बैकेंड को अच्छी तरह से काम करने के लिए सभी उचित पृष्ठभूमि विवरण सेट करेगा, लेकिन कुछ भी आयात नहीं करेगा। आपको मॉड्यूल को स्पष्ट रूप से आयात करना होगा।

import numpy as np
import matplotlib.pyplot as plt

एक अच्छी शुरुआत है।

यदि आप matplotlibएक gui में एम्बेड कर रहे हैं, तो आप pyplot को आयात नहीं करना चाहते हैं क्योंकि यह अतिरिक्त gui मुख्य छोरों को शुरू करेगा, और आपको जो आयात करना चाहिए वह वास्तव में आप क्या कर रहे हैं पर निर्भर करता है।


19
पाइलैब और पाइलपोट के बीच का अंतर यह है कि पूर्व आयात अपने नाम स्थान में सुन्न हो जाता है। यह इसे मटलब के साथ अधिक समान व्यवहार करने के लिए करना था। पाइलैब की जगह पाइलट का इस्तेमाल करना पसंद किया जाता है क्योंकि यह क्लीनर है।
क्रिश्चियन एलिस

8

Https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-theyrelrel पर प्रलेखन , जिसमें पायलॉट और पाइलैब के बीच अंतर का भी वर्णन किया गया है, कहता है: "हालांकि कई उदाहरणों का उपयोग करते हैं पाइलैब, यह अब अनुशंसित नहीं है। " । इसलिए, मुझे pylab का उपयोग करने या इसके बारे में चिंता करने का कोई कारण नहीं दिखता है।


1
यह स्वीकृत उत्तर होना चाहिए। "आधिकारिक" प्रलेखन कुओं है, और यह कहता है कि पाइलैब की सिफारिश नहीं की जाती है।
dturvene
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.