वस्तुओं के नाम
Matplotlib दृढ़ता से ऑब्जेक्ट ओरिएंटेड है और इसकी प्रमुख वस्तुएं आकृति और अक्ष हैं (मुझे नाम axesथोड़ा भ्रामक लगता है, लेकिन शायद यह सिर्फ मेरे लिए है)।
आप सोच सकते हैं आंकड़ा एक के रूप में कैनवास , जिनमें से आप आमतौर पर आयाम और संभवतः निर्दिष्ट जैसे, पृष्ठभूमि रंग आदि आदि आप कैनवास, का उपयोग आंकड़ा , अनिवार्य रूप से दो तरह से, उस पर (ज्यादातर अन्य वस्तुओं रखने अक्ष , लेकिन यह भी पाठ आदि) और के साथ अपनी सामग्री को बचाने savefig।
आप एक के बारे में सोच सकते हैं कुल्हाड़ियों स्विस सेना चाकू का एक तरह, एक आसान उद्देश्य यह है कि प्रदान करता है एक उपकरण है (उदाहरण के रूप में .plot, .scatter, .histआदि) सब कुछ के लिए, ज्यादातर। आप एक, दो, ... कई अलग-अलग तरीकों में से एक का उपयोग करके एक आकृति के अंदर कई कुल्हाड़ियों को रख सकते हैं ।
pltइंटरफ़ेस
Plt प्रक्रियात्मक इंटरफ़ेस मूल रूप से नकल MATLAB ™ इंटरफ़ेस करने के लिए विकसित किया गया था, लेकिन वास्तव में वस्तु उन्मुख इंटरफ़ेस से अलग नहीं है, भले ही आप मुख्य उद्देश्य के लिए एक सीधा संदर्भ नहीं बनाते हैं (यानी, एक आंकड़ा और एक कुल्हाड़ियों ) इन वस्तुओं रहे हैं स्वचालित रूप से त्वरित और प्रत्येक पीएलटी विधि है, अनिवार्य रूप से, अंतर्निहित मूलभूत वस्तुओं में से एक के एक कॉल के लिए अनुवादित: उदाहरण के लिए, plt.plot()एक hidden_axes.plotऔर एक plt.savefigएक है hidden_figure.savefig।
हर पल में आप का उपयोग कर इन छिपे हुए वस्तुओं पर एक संभाल कर सकते हैं plt.gcfऔर plt.gcaहै, और जब वस्तु तरीकों में से एक में एक विधि पर वापस पोर्ट नहीं किया गया है यह कभी कभी आवश्यक है plt नाम स्थान।
मैं जोड़ना चाहूंगा कि पीटीटी नेमस्पेस में विभिन्न तरीकों, फिगर और कुल्हाड़ियों को त्वरित करने के लिए कई सुविधा विधियां शामिल हैं ।
आपके उदाहरण
पहला तरीका
plt.plot(x, y)
यहाँ आप केवल पीटीटी इंटरफ़ेस का उपयोग करते हैं , आप केवल प्रत्येक आकृति में एक अक्ष का उपयोग कर सकते हैं , लेकिन यही वह है जब आप अपने डेटा की खोज कर रहे हैं, एक त्वरित नुस्खा जो काम करता है ...
दूसरा तरीका
ax = plt.subplot()
ax.plot(x, y)
यहां आप अपनी एक्सिस ऑब्जेक्ट को एक नाम (और एक हैंडल) देने के लिए पीटीटी नेमस्पेस में एक सुविधा पद्धति का उपयोग करते हैं , लेकिन एक छिपी हुई आकृति भी है । आप बाद में कुल्हाड़ी वस्तु का उपयोग साजिश, हिस्टोग्राम आदि बनाने के लिए कर सकते हैं, सभी चीजें जो आप पीटीटी इंटरफेस के साथ कर सकते हैं , लेकिन आप इसकी सभी विशेषताओं का उपयोग भी कर सकते हैं और उन्हें अधिक स्वतंत्रता के साथ संशोधित कर सकते हैं।
तीसरा तरीका
figure = plt.figure()
new_plot = figure.add_subplot(111)
new_plot.plot(x, y)
यहां आप पीटी नेमस्पेस में एक सुविधा पद्धति का उपयोग करके एक आंकड़े को तत्काल शुरू करते हैं और बाद में आप केवल ऑब्जेक्ट ओरिएंटेड इंटरफ़ेस का उपयोग करते हैं।
यह पीटी सुविधा विधि ( matplotlib.figure.Figure) को बायपास करना संभव है, लेकिन आपको फिर एक बेहतर इंटरैक्टिव अनुभव के लिए आकृति को ट्विस्ट करना होगा (आखिरकार, यह एक सुविधा विधि है)।
व्यक्तिगत सिफारिशें
मैं नंगे होने का सुझाव देता हूं plt.plot,plt.scatter एक इंटरैक्टिव सत्र के संदर्भ में, संभवतः का उपयोग कर IPython इसके साथ %matplotlibजादू आदेश, और यह भी एक खोजपूर्ण Jupyter नोटबुक के संदर्भ में।
दूसरी ओर वस्तु उन्मुख दृष्टिकोण, और कुछ plt
सुविधा विधियों, जाने का रास्ता है
- यदि आपके पास एक स्थायी समस्या है तो एक बार हल करने के लिए सभी को बारीक ट्यून किए गए सबप्लॉट की अनुकूलित व्यवस्था के साथ,
- अगर आप अपने द्वारा लिखे गए प्रोग्राम के UI में Matplotlib एम्बेड करना चाहते हैं।
इन चरम सीमाओं के बीच एक बड़ा ग्रे क्षेत्र है और अगर आप मुझसे पूछें कि मैं क्या करूं तो मैं कहूंगा "यह निर्भर करता है" ...