एक लाइन प्लॉट एक रिलेशनल डेटा विज़ुअलाइज़ेशन है जो दिखाता है कि एक सतत चर में दूसरे के बदलने पर कैसे परिवर्तन होता है। यह सबसे सामान्य ग्राफ़ों में से एक है, जिसका व्यापक उपयोग वित्त, बिक्री, मार्केटिंग, स्वास्थ्य सेवा, प्राकृतिक विज्ञान आदि में होता है।
इस ट्यूटोरियल में, हम चर्चा करेंगे कि Python की लोकप्रिय डेटा विज़ुअलाइज़ेशन लाइब्रेरी Seaborn का उपयोग करके Python में लाइन प्लॉट कैसे बनाएं और उन्हें कैसे कस्टमाइज़ करें।
डेटासेट का परिचय
Seaborn लाइन प्लॉट का अभ्यास करने के लिए, हम पहले Kaggle से Daily Exchange Rates per Euro 1999-2024 नामक डेटासेट डाउनलोड करेंगे। फिर, हम सभी आवश्यक पैकेज इम्पोर्ट करेंगे और डेटाफ़्रेम को पढ़कर साफ़ करेंगे। सफ़ाई प्रक्रिया के विवरण में जाए बिना, नीचे दिया गया कोड करने के चरणों को दर्शाता है:
Currencies:['Australian dollar''Canadian dollar''US dollar']
Date Currency Euro rate
02023-01-27 Australian dollar 1.528912023-01-26 Australian dollar 1.530822023-01-25 Australian dollar 1.536032023-01-24 Australian dollar 1.547042023-01-23 Australian dollar 1.55292022-12-01/2023-01-27संचालित द्वारा
तैयार हुआ डेटाफ़्रेम 01.12.2022 से लेकर 27.01.2023 तक की अवधि के लिए ऑस्ट्रेलियाई, कैनेडियन और अमेरिकी डॉलर के दैनिक (व्यवसायिक दिनों के) यूरो रेट्स शामिल करता है।
अब, हम Python seaborn लाइन प्लॉट बनाना और कस्टमाइज़ करना शुरू करने के लिए तैयार हैं।
Seaborn लाइन प्लॉट के मूल
Seaborn में लाइन प्लॉट बनाने के लिए, हम दो में से किसी एक फ़ंक्शन का उपयोग कर सकते हैं: lineplot() या relplot()। समग्र रूप से, उनकी बहुत-सी कार्यक्षमताएँ समान हैं, साथ ही पैरामीटर नाम भी एक जैसे हैं। मुख्य अंतर यह है कि relplot() हमें अलग-अलग फेसेट्स पर मल्टीपल लाइनों वाले लाइन प्लॉट बनाने देता है। वहीं, lineplot() कॉन्फिडेंस इंटरवल और डेटा एग्रीगेशन के साथ काम करने की अनुमति देता है।
इस ट्यूटोरियल में, हम अधिकांशतः lineplot() फ़ंक्शन का उपयोग करेंगे।
हम दो सतत वेरिएबल्स के बीच संबंध दिखाने वाला लाइन प्लॉट इस प्रकार बना सकते हैं:
usd = daily_exchange_rate_df[daily_exchange_rate_df['Currency']=='US dollar'].reset_index(drop=True)
sns.lineplot(x='Date', y='Euro rate', data=usd)संचालित द्वारा
आउटपुट:
ऊपर दिया गया ग्राफ़ EUR-USD रेट की गतिशीलता दिखाता है। हमने x और y अक्षों पर प्लॉट करने वाले वेरिएबल्स (x और y पैरामीटर्स) और वह डेटाफ़्रेम (data) निर्धारित किया है जिनसे ये वेरिएबल्स लिए जाने हैं।
तुलना के लिए, वही प्लॉट relplot() से बनाने के लिए, हम निम्नलिखित लिखेंगे:
sns.relplot(x='Date', y='Euro rate', data=usd, kind='line')संचालित द्वारा
आउटपुट:
इस मामले में, हमने relplot() के लिए विशिष्ट एक और आर्गुमेंट पास किया: kind='line'। डिफ़ॉल्ट रूप से, यह फ़ंक्शन एक स्कैटर प्लॉट बनाता है।
एक सिंगल seaborn लाइन प्लॉट कस्टमाइज़ करना
हम ऊपर दिए गए चार्ट को अधिक पठनीय और सूचनाप्रद बनाने के लिए कई तरीकों से कस्टमाइज़ कर सकते हैं। उदाहरण के लिए, हम फ़िगर का आकार समायोजित कर सकते हैं, शीर्षक और अक्ष लेबल जोड़ सकते हैं, फ़ॉन्ट आकार समायोजित कर सकते हैं, लाइन को कस्टमाइज़ कर सकते हैं, मार्कर्स जोड़ और कस्टमाइज़ कर सकते हैं, आदि। आइए देखें कि seaborn में इन सुधारों को कैसे लागू किया जाए।
फ़िगर साइज समायोजित करना
क्योंकि Seaborn matplotlib के ऊपर बनाया गया है, हम फ़िगर का आकार समायोजित करने के लिए matplotlib.pyplot का उपयोग कर सकते हैं:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=usd)संचालित द्वारा
आउटपुट:
इसके बजाय, relplot() के साथ, हम इसी उद्देश्य के लिए height और aspect (चौड़ाई-से-ऊँचाई अनुपात) पैरामीटर्स का उपयोग कर सकते हैं:
sns.relplot(x='Date', y='Euro rate', data=usd, kind='line', height=6, aspect=4)संचालित द्वारा
आउटपुट:
शीर्षक और अक्ष लेबल जोड़ना
ग्राफ़ का शीर्षक और अक्ष लेबल जोड़ने के लिए, हम seaborn लाइन प्लॉट ऑब्जेक्ट पर set() फ़ंक्शन का उपयोग करते हैं और title, xlabel, तथा ylabel आर्गुमेंट्स पास करते हैं:
ध्यान दें कि हमने प्रारंभिक शैली को ओवरराइड होने से बचाने के लिए style='white' भी जोड़ा है।
लाइन का रंग, स्टाइल और साइज बदलना
प्लॉट लाइन को कस्टमाइज़ करने के लिए, हम matplotlib.pyplot.plot के साथ सामान्य कुछ वैकल्पिक पैरामीटर्स पास कर सकते हैं, जैसे color, linestyle, या linewidth:
मार्कर्स जोड़ना और उनके रंग, स्टाइल और साइज को कस्टमाइज़ करना
लाइन पर मार्कर्स जोड़ना और उनकी उपस्थिति को कस्टमाइज़ करना संभव है। इस मामले में भी, हम matplotlib के कुछ पैरामीटर्स का उपयोग कर सकते हैं, जैसे marker, markerfacecolor, या markersize:
दस्तावेज़ seaborn लाइन प्लॉट की एस्थेटिक्स सुधारने हेतु उपयोग किए जाने वाले पैरामीटर्स की विस्तृत सूची प्रदान करता है। विशेष रूप से, हम मार्कर्स के सभी संभावित विकल्प देख सकते हैं।
हमारी Seaborn चीट शीट में, आपको Seaborn में लाइन प्लॉट को कस्टमाइज़ करने के अन्य तरीके मिलेंगे।
मल्टीपल लाइनों वाले Seaborn लाइन प्लॉट
अक्सर, हमें देखना होता है कि कई सतत वेरिएबल्स किसी अन्य सतत वेरिएबल के अनुसार कैसे बदलते हैं। इसके लिए, हम मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बना सकते हैं। lineplot() और relplot() फ़ंक्शंस ऐसे मामलों में भी लागू होते हैं।
मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बनाना
तकनीकी रूप से, प्रत्येक आश्रित वेरिएबल, यानी प्रत्येक लाइन के लिए अलग-अलग axes ऑब्जेक्ट बनाकर मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बनाना संभव है:
ऊपर, हमने अपने शुरुआती डेटाफ़्रेम daily_exchange_rate_df से दो और सबसेट निकाले हैं – ऑस्ट्रेलियाई और कैनेडियन डॉलर के लिए – और प्रत्येक यूरो रेट को समय के साथ प्लॉट किया है। हालाँकि, इसके और भी कुशल समाधान हैं: hue, style, या size पैरामीटर्स का उपयोग करना, जो lineplot() और relplot() दोनों में उपलब्ध हैं।
hue पैरामीटर का उपयोग
यह पैरामीटर इस प्रकार काम करता है: हम इसे डेटाफ़्रेम के उस कॉलम का नाम देते हैं जिसमें श्रेणीबद्ध मान होते हैं, और फिर seaborn प्रत्येक श्रेणी के लिए एक लाइन प्लॉट तैयार करता है, प्रत्येक लाइन को अलग रंग देता है:
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, hue='Currency')संचालित द्वारा
आउटपुट:
सिर्फ एक पंक्ति के सरल कोड से, हमने तीन श्रेणियों के लिए seaborn लाइन प्लॉट बना लिया। ध्यान दें कि हमने अलग-अलग मुद्राओं के लिए सबसेट्स के बजाय आरंभिक डेटाफ़्रेम daily_exchange_rate_df पास किया है।
style पैरामीटर का उपयोग
style पैरामीटर hue की तरह ही काम करता है, बस यह श्रेणियों को अलग-अलग लाइन स्टाइल (सॉलिड, डैश्ड, डॉटेड, आदि) से अलग करता है, रंग पर असर डाले बिना:
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, style='Currency')संचालित द्वारा
आउटपुट:
size पैरामीटर का उपयोग
hue और style की तरह ही, size पैरामीटर प्रत्येक श्रेणी के लिए एक अलग लाइन बनाता है। यह लाइनों के रंग और स्टाइल को प्रभावित नहीं करता, बल्कि उनकी चौड़ाई अलग-अलग कर देता है:
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, size='Currency')संचालित द्वारा
आउटपुट:
मल्टीपल लाइनों वाले seaborn लाइन प्लॉट को कस्टमाइज़ करना
अब हम अपने ग्राफ़ की एस्थेटिक्स के साथ प्रयोग करें। कुछ तकनीकें वही हैं जो हमने एक सिंगल Seaborn लाइन प्लॉट के लिए लागू की थीं। अन्य केवल मल्टीपल लाइनों वाले लाइन प्लॉट पर ही लागू होती हैं।
समग्र समायोजन
हम ऊपर दिए गए ग्राफ़ का फ़िगर साइज समायोजित कर सकते हैं, शीर्षक और अक्ष लेबल जोड़ सकते हैं, और फ़ॉन्ट साइज बदल सकते हैं, ठीक उसी तरह जैसे हमने सिंगल लाइन प्लॉट के लिए किया था:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, hue='Currency').set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
प्रत्येक लाइन का रंग, स्टाइल और साइज बदलना
पहले हमने देखा कि जब hue, style, या size पैरामीटर्स का उपयोग किया जाता है, तो seaborn मल्टीपल लाइनों वाले लाइन प्लॉट के लिए डिफ़ॉल्ट रंग/स्टाइल/साइज देता है। आवश्यक होने पर, हम इन डिफ़ॉल्ट्स को ओवरराइड कर सकते हैं और स्वयं रंग/स्टाइल/साइज चुन सकते हैं।
जब हम hue पैरामीटर का उपयोग करते हैं, तो हम palette आर्गुमेंट को matplotlib कलर नामों की सूची या ट्यूपल के रूप में भी पास कर सकते हैं। मैं हमारा ट्यूटोरियल, Seaborn Color Palette: रंग चुनने की त्वरित गाइड पढ़ने की सलाह दूँगा ताकि आप रंग सिद्धांत को समझें और अपने विज़ुअल्स को आकर्षक बनाने के लिए अच्छे विचार पाएं।
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, hue='Currency', palette=['magenta','deepskyblue','yellowgreen']).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
मौजूदा matplotlib पैलेट को सीधे लागू करना भी संभव है:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, hue='Currency', palette='spring').set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
इसी समय, hue उपयोग करते समय, हम सभी लाइनों की लाईन स्टाइल और चौड़ाई को linestyle और linewidth आर्गुमेंट्स पास करके अभी भी समायोजित कर सकते हैं:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, hue='Currency', palette=['magenta','deepskyblue','yellowgreen'], linestyle='dashed', linewidth=5).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
इसके बजाय, जब हम style पैरामीटर का उपयोग करके मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बनाते हैं, तो हम dashes नामक पैरामीटर को सूचियों (या ट्यूपल्स) की सूची (या ट्यूपल) असाइन कर सकते हैं:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, style='Currency', dashes=[[4,4],[6,1],[3,9]]).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
ऊपर dashes को दी गई सूचियों की सूची में, प्रत्येक उपसूची का पहला आइटम संबंधित लाइन के सेगमेंट की लंबाई दर्शाता है, जबकि दूसरा आइटम — गैप की लंबाई।
नोट: एक सॉलिड लाइन दर्शाने के लिए, हमें गैप की लंबाई शून्य सेट करनी होगी, जैसे: [1, 0]।
इस ग्राफ़ की सभी लाइनों के रंग और चौड़ाई समायोजित करने के लिए, हम color और linewidth आर्गुमेंट्स प्रदान करते हैं, जैसा हमने सिंगल seaborn लाइन प्लॉट को कस्टमाइज़ करते समय किया था:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, style='Currency', dashes=[[4,4],[6,1],[3,9]], color='darkviolet', linewidth=4).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
अंत में, जब हम size पैरामीटर का उपयोग करके seaborn मल्टीपल लाइन प्लॉट बनाते हैं, तो हम sizes पैरामीटर के माध्यम से प्रत्येक लाइन की चौड़ाई नियंत्रित कर सकते हैं। यह पूर्णांकों की सूची (या ट्यूपल) लेता है:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, size='Currency', sizes=[2,10,5]).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
इस प्लॉट की सभी लाइनों के रंग और स्टाइल को कस्टमाइज़ करने के लिए, हमें linestyle और color आर्गुमेंट्स प्रदान करने होंगे:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, size='Currency', sizes=[2,10,5], linestyle='dotted', color='teal').set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
मार्कर्स जोड़ना और उनके रंग, स्टाइल और साइज को कस्टमाइज़ करना
हम अपने seaborn मल्टीपल लाइन प्लॉट पर मार्कर्स जोड़ना चाह सकते हैं।
सभी लाइनों पर एक ही रंग, स्टाइल और साइज के मार्कर्स जोड़ने के लिए, हमें matplotlib के पैरामीटर्स, जैसे marker, markerfacecolor, markersize आदि का उपयोग करना होगा, बिल्कुल वैसे ही जैसे हमने सिंगल लाइन प्लॉट के लिए किया था:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, hue='Currency', marker='o', markerfacecolor='orangered', markersize=10).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
हालाँकि, जब हम प्रत्येक लाइन के लिए अलग-अलग मार्कर्स चाहते हैं, तो बात अलग होती है। इस मामले में, हमें markers पैरामीटर का उपयोग करना होगा, जो कि seaborn की कार्यक्षमताओं के अनुसार केवल तब काम करता है जब style पैरामीटर निर्दिष्ट हो:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, style='Currency', markers=['o','X','*'], markerfacecolor='brown', markersize=10).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
ऊपर दिए गए प्लॉट में, हम dashes आर्गुमेंट प्रदान करके और प्रत्येक लाइन के लिए [1, 0] स्टाइल पैटर्न सेट करके सभी लाइनों को सॉलिड बना सकते हैं:
fig = plt.subplots(figsize=(20,5))
sns.lineplot(x='Date', y='Euro rate', data=daily_exchange_rate_df, style='Currency', markers=['o','X','*'], dashes=[[1,0],[1,0],[1,0]], markerfacecolor='brown', markersize=10).set(title='Euro rates for different currencies', xlabel='Date', ylabel='Rate')
sns.set_theme(style='white', font_scale=3)संचालित द्वारा
आउटपुट:
निष्कर्ष
सारांश के लिए, इस ट्यूटोरियल में, हमने एकल या मल्टीपल लाइनों के साथ Seaborn लाइन प्लॉट बनाने और कस्टमाइज़ करने के कई तरीकों को सीखा।
आगे बढ़ने के लिए, seaborn के साथ, हम लाइन प्लॉट को और अधिक समायोजित करने के लिए बहुत कुछ कर सकते हैं। उदाहरण के लिए, हम:
एक से अधिक श्रेणीबद्ध वेरिएबल्स के आधार पर लाइनों को समूहित कर सकते हैं
लीजेंड को कस्टमाइज़ कर सकते हैं
अलग-अलग फेसेट्स पर मल्टीपल लाइनों वाले लाइन प्लॉट बना सकते हैं
कॉन्फिडेंस इंटरवल प्रदर्शित और कस्टमाइज़ कर सकते हैं
टाइम सीरीज़ लाइन प्लॉट के लिए समय-अक्ष के टिक और उनके लेबल कस्टमाइज़ कर सकते हैं
Seaborn में लाइन प्लॉट प्लॉट का वह प्रकार है जो दो वेरिएबल्स के बीच संबंध को डेटा पॉइंट्स को सीधी रेखा से जोड़कर दिखाता है।
Seaborn में लाइन प्लॉट के लिए किस तरह का डेटा सबसे उपयुक्त है?⌄
लाइन प्लॉट उस डेटा के लिए सबसे उपयुक्त हैं जहाँ दो वेरिएबल्स के बीच एक स्पष्ट संबंध हो, और जहाँ वेरिएबल्स सतत या ऑर्डिनल हों।
क्या मैं Seaborn में एक ही प्लॉट पर कई लाइनों को प्लॉट कर सकता/सकती हूँ?⌄
हाँ, आप Seaborn में hue पैरामीटर का उपयोग करके, किसी श्रेणीबद्ध वेरिएबल द्वारा डेटा को समूहित कर, एक ही प्लॉट पर कई लाइनों को प्लॉट कर सकते हैं।
Seaborn में लाइन प्लॉट और स्कैटर प्लॉट में क्या अंतर है?⌄
Seaborn में लाइन प्लॉट दो वेरिएबल्स के बीच संबंध को सीधी रेखा से दिखाता है, जबकि स्कैटर प्लॉट यह संबंध व्यक्तिगत डेटा पॉइंट्स के माध्यम से दिखाता है।
क्या मैं अपने लाइन प्लॉट में रिग्रेशन लाइन जोड़ सकता/सकती हूँ?⌄
हाँ, आप Seaborn में regplot() फ़ंक्शन का उपयोग करके अपने लाइन प्लॉट में रिग्रेशन लाइन जोड़ सकते हैं, जो दो वेरिएबल्स के बीच एक रैखिक रिग्रेशन मॉडल फिट और प्लॉट करता है।
मैं अपने Seaborn लाइन प्लॉट को फ़ाइल में कैसे सहेजूँ?⌄
आप अपने Seaborn लाइन प्लॉट को फ़ाइल में सहेज सकते हैं matplotlib लाइब्रेरी के savefig() फ़ंक्शन का उपयोग करके, जो वर्तमान फ़िगर को निर्दिष्ट फ़ाइल पथ और फ़ॉर्मेट में सेव करता है।
एक लाइन प्लॉट एक रिलेशनल डेटा विज़ुअलाइज़ेशन है जो दिखाता है कि एक सतत चर में दूसरे के बदलने पर कैसे परिवर्तन होता है। यह सबसे सामान्य ग्राफ़ों में से एक है, जिसका व्यापक उपयोग वित्त, बिक्री, मार्केटिंग, स्वास्थ्य सेवा, प्राकृतिक विज्ञान आदि में होता है।
इस ट्यूटोरियल में, हम चर्चा करेंगे कि Python की लोकप्रिय डेटा विज़ुअलाइज़ेशन लाइब्रेरी Seaborn का उपयोग करके Python में लाइन प्लॉट कैसे बनाएं और उन्हें कैसे कस्टमाइज़ करें।
डेटासेट का परिचय
Seaborn लाइन प्लॉट का अभ्यास करने के लिए, हम पहले Kaggle से Daily Exchange Rates per Euro 1999-2024 नामक डेटासेट डाउनलोड करेंगे। फिर, हम सभी आवश्यक पैकेज इम्पोर्ट करेंगे और डेटाफ़्रेम को पढ़कर साफ़ करेंगे। सफ़ाई प्रक्रिया के विवरण में जाए बिना, नीचे दिया गया कोड करने के चरणों को दर्शाता है:
आउटपुट:
तैयार हुआ डेटाफ़्रेम
01.12.2022से लेकर27.01.2023तक की अवधि के लिए ऑस्ट्रेलियाई, कैनेडियन और अमेरिकी डॉलर के दैनिक (व्यवसायिक दिनों के) यूरो रेट्स शामिल करता है।अब, हम Python seaborn लाइन प्लॉट बनाना और कस्टमाइज़ करना शुरू करने के लिए तैयार हैं।
Seaborn लाइन प्लॉट के मूल
Seaborn में लाइन प्लॉट बनाने के लिए, हम दो में से किसी एक फ़ंक्शन का उपयोग कर सकते हैं:
lineplot()याrelplot()। समग्र रूप से, उनकी बहुत-सी कार्यक्षमताएँ समान हैं, साथ ही पैरामीटर नाम भी एक जैसे हैं। मुख्य अंतर यह है किrelplot()हमें अलग-अलग फेसेट्स पर मल्टीपल लाइनों वाले लाइन प्लॉट बनाने देता है। वहीं,lineplot()कॉन्फिडेंस इंटरवल और डेटा एग्रीगेशन के साथ काम करने की अनुमति देता है।इस ट्यूटोरियल में, हम अधिकांशतः
lineplot()फ़ंक्शन का उपयोग करेंगे।कोर्स Introduction to Data Visualization with Seaborn आपको seaborn लाइब्रेरी के मुख्य फ़ंक्शंस और मेथड्स सीखने और अभ्यास करने में मदद करेगा। आप हमारे शुरुआती के लिए Seaborn ट्यूटोरियल भी देख सकते हैं ताकि इस लोकप्रिय Python लाइब्रेरी को बेहतर समझ सकें।
एक सिंगल seaborn लाइन प्लॉट बनाना
हम दो सतत वेरिएबल्स के बीच संबंध दिखाने वाला लाइन प्लॉट इस प्रकार बना सकते हैं:
आउटपुट:
ऊपर दिया गया ग्राफ़ EUR-USD रेट की गतिशीलता दिखाता है। हमने x और y अक्षों पर प्लॉट करने वाले वेरिएबल्स (x और y पैरामीटर्स) और वह डेटाफ़्रेम (data) निर्धारित किया है जिनसे ये वेरिएबल्स लिए जाने हैं।
तुलना के लिए, वही प्लॉट
relplot()से बनाने के लिए, हम निम्नलिखित लिखेंगे:आउटपुट:
इस मामले में, हमने
relplot()के लिए विशिष्ट एक और आर्गुमेंट पास किया:kind='line'। डिफ़ॉल्ट रूप से, यह फ़ंक्शन एक स्कैटर प्लॉट बनाता है।एक सिंगल seaborn लाइन प्लॉट कस्टमाइज़ करना
हम ऊपर दिए गए चार्ट को अधिक पठनीय और सूचनाप्रद बनाने के लिए कई तरीकों से कस्टमाइज़ कर सकते हैं। उदाहरण के लिए, हम फ़िगर का आकार समायोजित कर सकते हैं, शीर्षक और अक्ष लेबल जोड़ सकते हैं, फ़ॉन्ट आकार समायोजित कर सकते हैं, लाइन को कस्टमाइज़ कर सकते हैं, मार्कर्स जोड़ और कस्टमाइज़ कर सकते हैं, आदि। आइए देखें कि seaborn में इन सुधारों को कैसे लागू किया जाए।
फ़िगर साइज समायोजित करना
क्योंकि Seaborn matplotlib के ऊपर बनाया गया है, हम फ़िगर का आकार समायोजित करने के लिए
matplotlib.pyplotका उपयोग कर सकते हैं:आउटपुट:
इसके बजाय, relplot() के साथ, हम इसी उद्देश्य के लिए height और aspect (चौड़ाई-से-ऊँचाई अनुपात) पैरामीटर्स का उपयोग कर सकते हैं:
आउटपुट:
शीर्षक और अक्ष लेबल जोड़ना
ग्राफ़ का शीर्षक और अक्ष लेबल जोड़ने के लिए, हम seaborn लाइन प्लॉट ऑब्जेक्ट पर
set()फ़ंक्शन का उपयोग करते हैं और title,xlabel, तथाylabelआर्गुमेंट्स पास करते हैं:आउटपुट:
फ़ॉन्ट आकार समायोजित करना
फ़ॉन्ट आकार समायोजित करने का सुविधाजनक तरीका है
set_theme()फ़ंक्शन का उपयोग करना औरfont_scaleपैरामीटर के अलग-अलग मानों के साथ प्रयोग करना:आउटपुट:
ध्यान दें कि हमने प्रारंभिक शैली को ओवरराइड होने से बचाने के लिए
style='white'भी जोड़ा है।लाइन का रंग, स्टाइल और साइज बदलना
प्लॉट लाइन को कस्टमाइज़ करने के लिए, हम
matplotlib.pyplot.plotके साथ सामान्य कुछ वैकल्पिक पैरामीटर्स पास कर सकते हैं, जैसेcolor,linestyle, याlinewidth:आउटपुट:
मार्कर्स जोड़ना और उनके रंग, स्टाइल और साइज को कस्टमाइज़ करना
लाइन पर मार्कर्स जोड़ना और उनकी उपस्थिति को कस्टमाइज़ करना संभव है। इस मामले में भी, हम matplotlib के कुछ पैरामीटर्स का उपयोग कर सकते हैं, जैसे
marker,markerfacecolor, याmarkersize:आउटपुट:
दस्तावेज़ seaborn लाइन प्लॉट की एस्थेटिक्स सुधारने हेतु उपयोग किए जाने वाले पैरामीटर्स की विस्तृत सूची प्रदान करता है। विशेष रूप से, हम मार्कर्स के सभी संभावित विकल्प देख सकते हैं।
हमारी Seaborn चीट शीट में, आपको Seaborn में लाइन प्लॉट को कस्टमाइज़ करने के अन्य तरीके मिलेंगे।
मल्टीपल लाइनों वाले Seaborn लाइन प्लॉट
अक्सर, हमें देखना होता है कि कई सतत वेरिएबल्स किसी अन्य सतत वेरिएबल के अनुसार कैसे बदलते हैं। इसके लिए, हम मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बना सकते हैं।
lineplot()औरrelplot()फ़ंक्शंस ऐसे मामलों में भी लागू होते हैं।मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बनाना
तकनीकी रूप से, प्रत्येक आश्रित वेरिएबल, यानी प्रत्येक लाइन के लिए अलग-अलग axes ऑब्जेक्ट बनाकर मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बनाना संभव है:
आउटपुट:
ऊपर, हमने अपने शुरुआती डेटाफ़्रेम
daily_exchange_rate_dfसे दो और सबसेट निकाले हैं – ऑस्ट्रेलियाई और कैनेडियन डॉलर के लिए – और प्रत्येक यूरो रेट को समय के साथ प्लॉट किया है। हालाँकि, इसके और भी कुशल समाधान हैं:hue,style, याsizeपैरामीटर्स का उपयोग करना, जोlineplot()औरrelplot()दोनों में उपलब्ध हैं।hue पैरामीटर का उपयोग
यह पैरामीटर इस प्रकार काम करता है: हम इसे डेटाफ़्रेम के उस कॉलम का नाम देते हैं जिसमें श्रेणीबद्ध मान होते हैं, और फिर seaborn प्रत्येक श्रेणी के लिए एक लाइन प्लॉट तैयार करता है, प्रत्येक लाइन को अलग रंग देता है:
आउटपुट:
सिर्फ एक पंक्ति के सरल कोड से, हमने तीन श्रेणियों के लिए seaborn लाइन प्लॉट बना लिया। ध्यान दें कि हमने अलग-अलग मुद्राओं के लिए सबसेट्स के बजाय आरंभिक डेटाफ़्रेम
daily_exchange_rate_dfपास किया है।style पैरामीटर का उपयोग
style पैरामीटर hue की तरह ही काम करता है, बस यह श्रेणियों को अलग-अलग लाइन स्टाइल (सॉलिड, डैश्ड, डॉटेड, आदि) से अलग करता है, रंग पर असर डाले बिना:
आउटपुट:
size पैरामीटर का उपयोग
hue और style की तरह ही, size पैरामीटर प्रत्येक श्रेणी के लिए एक अलग लाइन बनाता है। यह लाइनों के रंग और स्टाइल को प्रभावित नहीं करता, बल्कि उनकी चौड़ाई अलग-अलग कर देता है:
आउटपुट:
मल्टीपल लाइनों वाले seaborn लाइन प्लॉट को कस्टमाइज़ करना
अब हम अपने ग्राफ़ की एस्थेटिक्स के साथ प्रयोग करें। कुछ तकनीकें वही हैं जो हमने एक सिंगल Seaborn लाइन प्लॉट के लिए लागू की थीं। अन्य केवल मल्टीपल लाइनों वाले लाइन प्लॉट पर ही लागू होती हैं।
समग्र समायोजन
हम ऊपर दिए गए ग्राफ़ का फ़िगर साइज समायोजित कर सकते हैं, शीर्षक और अक्ष लेबल जोड़ सकते हैं, और फ़ॉन्ट साइज बदल सकते हैं, ठीक उसी तरह जैसे हमने सिंगल लाइन प्लॉट के लिए किया था:
आउटपुट:
प्रत्येक लाइन का रंग, स्टाइल और साइज बदलना
पहले हमने देखा कि जब hue, style, या size पैरामीटर्स का उपयोग किया जाता है, तो seaborn मल्टीपल लाइनों वाले लाइन प्लॉट के लिए डिफ़ॉल्ट रंग/स्टाइल/साइज देता है। आवश्यक होने पर, हम इन डिफ़ॉल्ट्स को ओवरराइड कर सकते हैं और स्वयं रंग/स्टाइल/साइज चुन सकते हैं।
जब हम hue पैरामीटर का उपयोग करते हैं, तो हम
paletteआर्गुमेंट को matplotlib कलर नामों की सूची या ट्यूपल के रूप में भी पास कर सकते हैं। मैं हमारा ट्यूटोरियल, Seaborn Color Palette: रंग चुनने की त्वरित गाइड पढ़ने की सलाह दूँगा ताकि आप रंग सिद्धांत को समझें और अपने विज़ुअल्स को आकर्षक बनाने के लिए अच्छे विचार पाएं।आउटपुट:
मौजूदा matplotlib पैलेट को सीधे लागू करना भी संभव है:
आउटपुट:
इसी समय,
hueउपयोग करते समय, हम सभी लाइनों की लाईन स्टाइल और चौड़ाई कोlinestyleऔरlinewidthआर्गुमेंट्स पास करके अभी भी समायोजित कर सकते हैं:आउटपुट:
इसके बजाय, जब हम style पैरामीटर का उपयोग करके मल्टीपल लाइनों वाला seaborn लाइन प्लॉट बनाते हैं, तो हम
dashesनामक पैरामीटर को सूचियों (या ट्यूपल्स) की सूची (या ट्यूपल) असाइन कर सकते हैं:आउटपुट:
ऊपर dashes को दी गई सूचियों की सूची में, प्रत्येक उपसूची का पहला आइटम संबंधित लाइन के सेगमेंट की लंबाई दर्शाता है, जबकि दूसरा आइटम — गैप की लंबाई।
नोट: एक सॉलिड लाइन दर्शाने के लिए, हमें गैप की लंबाई शून्य सेट करनी होगी, जैसे:
[1, 0]।इस ग्राफ़ की सभी लाइनों के रंग और चौड़ाई समायोजित करने के लिए, हम color और linewidth आर्गुमेंट्स प्रदान करते हैं, जैसा हमने सिंगल seaborn लाइन प्लॉट को कस्टमाइज़ करते समय किया था:
आउटपुट:
अंत में, जब हम size पैरामीटर का उपयोग करके seaborn मल्टीपल लाइन प्लॉट बनाते हैं, तो हम
sizesपैरामीटर के माध्यम से प्रत्येक लाइन की चौड़ाई नियंत्रित कर सकते हैं। यह पूर्णांकों की सूची (या ट्यूपल) लेता है:आउटपुट:
इस प्लॉट की सभी लाइनों के रंग और स्टाइल को कस्टमाइज़ करने के लिए, हमें linestyle और color आर्गुमेंट्स प्रदान करने होंगे:
आउटपुट:
मार्कर्स जोड़ना और उनके रंग, स्टाइल और साइज को कस्टमाइज़ करना
हम अपने seaborn मल्टीपल लाइन प्लॉट पर मार्कर्स जोड़ना चाह सकते हैं।
सभी लाइनों पर एक ही रंग, स्टाइल और साइज के मार्कर्स जोड़ने के लिए, हमें matplotlib के पैरामीटर्स, जैसे marker,
markerfacecolor,markersizeआदि का उपयोग करना होगा, बिल्कुल वैसे ही जैसे हमने सिंगल लाइन प्लॉट के लिए किया था:आउटपुट:
हालाँकि, जब हम प्रत्येक लाइन के लिए अलग-अलग मार्कर्स चाहते हैं, तो बात अलग होती है। इस मामले में, हमें
markersपैरामीटर का उपयोग करना होगा, जो कि seaborn की कार्यक्षमताओं के अनुसार केवल तब काम करता है जब style पैरामीटर निर्दिष्ट हो:आउटपुट:
ऊपर दिए गए प्लॉट में, हम dashes आर्गुमेंट प्रदान करके और प्रत्येक लाइन के लिए
[1, 0]स्टाइल पैटर्न सेट करके सभी लाइनों को सॉलिड बना सकते हैं:आउटपुट:
निष्कर्ष
सारांश के लिए, इस ट्यूटोरियल में, हमने एकल या मल्टीपल लाइनों के साथ Seaborn लाइन प्लॉट बनाने और कस्टमाइज़ करने के कई तरीकों को सीखा।
आगे बढ़ने के लिए, seaborn के साथ, हम लाइन प्लॉट को और अधिक समायोजित करने के लिए बहुत कुछ कर सकते हैं। उदाहरण के लिए, हम:
seaborn से और गहराई से जानने के लिए कि क्या और कैसे किया जा सकता है, हमारा कोर्स Intermediate Data Visualization with Seaborn करने पर विचार करें।