यह थोड़ा निर्भर करता है कि आप किस समुद्री कार्य का उपयोग कर रहे हैं।
सीबॉर्न में प्लॉटिंग फ़ंक्शन मोटे तौर पर दो वर्गों में विभाजित हैं
- "अक्ष स्तर के" काम करता है, सहित
regplot
, boxplot
, kdeplot
, और कई अन्य
- "चित्रा-स्तरीय" काम करता है, सहित
lmplot
, factorplot
, jointplot
और एक या दो अन्य
पहले समूह को एक स्पष्ट ax
तर्क देकर और किसी Axes
वस्तु को वापस करके पहचाना जाता है । जैसा कि यह पता चलता है, आप उन्हें "ऑब्जेक्ट ओरिएंटेड" स्टाइल में अपने पास पास करके उपयोग कर सकते Axes
हैं:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
एक्सिस-स्तरीय फ़ंक्शंस केवल एक पर आकर्षित Axes
होंगे और अन्यथा आंकड़ा के साथ गड़बड़ नहीं करेंगे, इसलिए वे ऑब्जेक्ट-ओरिएंटेड मैटलोट्लिब स्क्रिप्ट में पूरी तरह से खुशी से सहवास कर सकते हैं।
कार्यों के दूसरे समूह (चित्रा-स्तर) को इस तथ्य से प्रतिष्ठित किया जाता है कि परिणामस्वरूप प्लॉट संभावित रूप से कई एक्सिस को शामिल कर सकते हैं जो हमेशा "सार्थक" तरीके से आयोजित किए जाते हैं। इसका मतलब है कि कार्यों को आंकड़े पर कुल नियंत्रण रखने की आवश्यकता है, इसलिए यह lmplot
पहले से मौजूद है , यह कहना, साजिश करना संभव नहीं है। फ़ंक्शन को कॉल करना हमेशा एक आकृति को इनिशियलाइज़ करता है और इसे उस विशिष्ट प्लॉट के लिए सेट करता है जिसे यह ड्राइंग कर रहा है।
हालाँकि, एक बार कॉल करने के बाद lmplot
, यह टाइप का एक ऑब्जेक्ट लौटाएगा FacetGrid
। इस ऑब्जेक्ट के परिणामस्वरूप प्लॉट पर काम करने के कुछ तरीके हैं जो प्लॉट की संरचना के बारे में थोड़ा जानते हैं। यह भी तर्क FacetGrid.fig
और FacetGrid.axes
तर्क में कुल्हाड़ियों की अंतर्निहित आकृति और सरणी को उजागर करता है। jointplot
समारोह बहुत समान है, लेकिन यह एक का उपयोग करता है JointGrid
वस्तु। तो आप अभी भी इन कार्यों को ऑब्जेक्ट-ओरिएंटेड संदर्भ में उपयोग कर सकते हैं, लेकिन आपके द्वारा किए गए फ़ंक्शन को कॉल करने के बाद आपके सभी अनुकूलन आने होंगे।