कोर्स
Seaborn सांख्यिकीय डेटा विज़ुअलाइज़ेशन के लिए सबसे लोकप्रिय Python लाइब्रेरीज़ में से एक है। Matplotlib पर आधारित होने के कारण, यह कम कोड में सुसज्जित चार्ट बनाता है, pandas DataFrames के साथ सीधे काम करता है, और सामान्य सांख्यिकीय प्लॉट्स—हिस्टोग्राम, बॉक्स प्लॉट, हीटमैप, रिग्रेशन फिट्स—को एक सुसंगत API के जरिए संभालता है।
इस ट्यूटोरियल में, मैं Seaborn के मुख्य प्लॉट प्रकारों से गुजरूँगा, उन्हें कैसे कस्टमाइज़ करें यह दिखाऊँगा, और Seaborn की तुलना अन्य Python विज़ुअलाइज़ेशन लाइब्रेरीज़ जैसे Matplotlib और Plotly से करूँगा। सभी कोड उदाहरण Seaborn 0.13+ और pandas 2.0+ का उपयोग करते हैं।
संक्षेप में
-
Seaborn एक Python सांख्यिकीय विज़ुअलाइज़ेशन लाइब्रेरी है जो Matplotlib पर बनी है—इसे इंस्टॉल करें:
pip install seaborn -
यह सीधे pandas DataFrames के साथ काम करती है: कॉलम नामों को
x,y, औरhueआर्ग्युमेंट्स के रूप में पास करें -
मुख्य प्लॉट प्रकार:
scatterplot(),lineplot(),barplot(),histplot(),boxplot(),heatmap(),pairplot() -
फ़िगर-लेवल फ़ंक्शंस (
relplot(),displot(),catplot()) एक ही कॉल में मल्टी-पैनल ग्रिड बनाते हैं -
set_theme()और बिल्ट-इन कलर पैलेट्स से रूप-रंग को कस्टमाइज़ करें
Seaborn क्या है?
Seaborn, Matplotlib के ऊपर निर्मित एक Python डेटा विज़ुअलाइज़ेशन लाइब्रेरी है। यह pandas DataFrames के साथ सीधे काम करती है, इसलिए आप कच्ची arrays के बजाय आर्ग्युमेंट्स के रूप में कॉलम नाम पास करते हैं। लाइब्रेरी सबसे आम सांख्यिकीय चार्ट प्रकारों को कवर करती है: स्कैटर प्लॉट, लाइन प्लॉट, बार प्लॉट, हिस्टोग्राम, बॉक्स प्लॉट, हीटमैप, और अन्य।
Seaborn अपनी API को तीन स्तरों में व्यवस्थित करता है:
-
फ़िगर-लेवल फ़ंक्शंस (
relplot(),displot(),catplot()) पूरी फ़िगर ग्रिड बनाते हैं और स्वतः फेसेटिंग संभालते हैं -
एक्सिस-लेवल फ़ंक्शंस (
scatterplot(),histplot(),boxplot()आदि) एक सिंगल Matplotlib axes पर ड्रॉ करते हैं -
यूटिलिटी फ़ंक्शंस (
heatmap(),pairplot(),jointplot()) विशेषीकृत मल्टी-पैनल लेआउट्स के लिए
आप हमारे Introduction to Data Visualization with Seaborn कोर्स के साथ Seaborn के बारे में और जान सकते हैं।
Seaborn बिल्ट-इन थीम्स और कलर पैलेट्स के साथ आता है जिन्हें आप एक ही set_theme() कॉल से लागू कर सकते हैं। इसमें सांख्यिकीय अनुमान भी शामिल है—बार प्लॉट्स पर कॉन्फिडेंस इंटरवल, रिग्रेशन फिट्स, कर्नेल डेन्सिटी एस्टीमेट्स—ताकि आप न्यूनतम कोड में कच्चे डेटा से प्रकाशन-योग्य फ़िगर तक पहुँच सकें।

Seaborn बनाम Matplotlib
Python की दो सबसे व्यापक रूप से उपयोग की जाने वाली डेटा विज़ुअलाइज़ेशन लाइब्रेरीज़ Matplotlib और Seaborn हैं। जबकि दोनों उच्च-गुणवत्ता वाले ग्राफ़िक्स और विज़ुअलाइज़ेशन बनाने के लिए बनाई गई हैं, उनमें कई प्रमुख अंतर हैं जो उन्हें अलग-अलग उपयोग मामलों के लिए उपयुक्त बनाते हैं।
Matplotlib आपको फ़िगर के हर तत्व (axes, ticks, legends, annotations) पर पूर्ण नियंत्रण देता है, लेकिन इस नियंत्रण का मतलब है कि हर चार्ट के लिए अधिक कोड। Seaborn स्पीड के लिए कुछ सूक्ष्म नियंत्रण छोड़ देता है: एक ही फ़ंक्शन कॉल और DataFrame के साथ तैयार-शुदा सांख्यिकीय प्लॉट बन जाता है।
| विशेषता | Matplotlib | Seaborn |
|---|---|---|
| एब्स्ट्रैक्शन स्तर | लो-लेवल (सूक्ष्म नियंत्रण) | हाई-लेवल (सांख्यिकीय डिफ़ॉल्ट्स) |
| डिफ़ॉल्ट स्टाइलिंग | न्यूनतम—मैनुअल थीमिंग चाहिए | प्रकाशन-योग्य थीम्स बिल्ट-इन |
| DataFrame इंटीग्रेशन | arrays स्वीकार करता है; DataFrame सपोर्ट बाद में जोड़ा गया | pandas DataFrames के इर्द-गिर्द निर्मित |
| सांख्यिकीय विशेषताएँ | कोई बिल्ट-इन नहीं | कॉन्फिडेंस इंटरवल, रिग्रेशन, KDE |
| मल्टी-पैनल लेआउट्स | subplots() के साथ मैनुअल |
FacetGrid, relplot() के साथ स्वतः |
| सबसे उपयुक्त | कस्टम, गैर-मानक फ़िगर्स | अन्वेषणात्मक डेटा विश्लेषण, मानक सांख्यिकीय चार्ट्स |
व्यवहार में, आप दोनों को साथ में उपयोग करते हैं। Seaborn प्लॉट बनाता है, फिर आप Matplotlib फ़ंक्शंस से लेबल, लिमिट्स, या एनोटेशंस को फाइन-ट्यून करते हैं—जैसा कि आप नीचे दिए उदाहरणों में देखेंगे।
आप हमारे Introduction to Plotting with Matplotlib in Python ट्यूटोरियल के साथ Matplotlib को विस्तार से देख सकते हैं।
Seaborn इंस्टॉल करना
Seaborn को Python 3.9+ (संस्करण 0.13 से) की आवश्यकता होती है और यह Matplotlib, pandas, और NumPy पर निर्भर करता है। इसे pip या conda से इंस्टॉल करें:
# install seaborn with pip
pip install seaborn
जब आप pip का उपयोग करते हैं, तो Seaborn और इसकी आवश्यक dependencies इंस्टॉल हो जाएँगी। यदि आप अतिरिक्त और वैकल्पिक फीचर्स तक पहुँच चाहते हैं, तो आप pip install में वैकल्पिक dependencies भी शामिल कर सकते हैं। उदाहरण के लिए:
pip install seaborn[stats]
या conda से:
# install seaborn with conda
conda install seaborn
नमूना डेटासेट्स
Seaborn कई बिल्ट-इन डेटासेट्स प्रदान करता है जिन्हें हम डेटा विज़ुअलाइज़ेशन और सांख्यिकीय विश्लेषण के लिए उपयोग कर सकते हैं। ये डेटासेट्स pandas dataframes में संग्रहीत होते हैं, जिससे इन्हें Seaborn के प्लॉटिंग फ़ंक्शंस के साथ उपयोग करना आसान हो जाता है।
सबसे आम डेटासेट्स में से एक, जिसका उपयोग Seaborn के सभी आधिकारिक उदाहरणों में भी होता है, को `tips dataset` कहा जाता है; इसमें रेस्तरां में दिए गए टिप्स की जानकारी होती है। यहाँ Seaborn में Tips डेटासेट को लोड और विज़ुअलाइज़ करने का एक उदाहरण है:
import seaborn as sns
tips = sns.load_dataset("tips")
sns.histplot(data=tips, x="total_bill")
आउटपुट:

यदि आप अभी इस प्लॉट को नहीं समझते—कोई बात नहीं। इसे हिस्टोग्राम कहा जाता है। हम इस ट्यूटोरियल में आगे हिस्टोग्राम के बारे में विस्तार से बताएँगे। फिलहाल, यही समझ लें कि Seaborn pandas DataFrames के रूप में कई नमूना डेटासेट्स के साथ आता है जिन्हें उपयोग करना आसान है और जिनसे आप अपनी विज़ुअलाइज़ेशन स्किल्स का अभ्यास कर सकते हैं। यहाँ `exercise` डेटासेट को लोड करने का एक और उदाहरण है।
import seaborn as sns
# Load the exercise dataset
exercise = sns.load_dataset("exercise")
# check the head
exercise.head()
आउटपुट:
Seaborn प्लॉट प्रकार
Seaborn विभिन्न विश्लेषणात्मक आवश्यकताओं के लिए कई प्रकार के प्लॉट प्रदान करता है। कोई भी विज़ुअलाइज़ेशन आम तौर पर निम्नलिखित तीन श्रेणियों में आता है:
- यूनिवेरिएट – केवल x (केवल एक अक्ष की जानकारी)
- बाइवेरिएट – x और y (दो अक्षों की जानकारी)
- ट्राइवेरिएट – x, y, z (तीन अक्षों की जानकारी)

यहाँ Seaborn में सबसे अधिक इस्तेमाल होने वाले कुछ प्लॉट प्रकार दिए गए हैं:
- स्कैटर प्लॉट। स्कैटर प्लॉट दो वेरिएबल्स के बीच संबंध को दिखाने के लिए उपयोग होता है। Seaborn का scatterplot() फ़ंक्शन स्कैटर प्लॉट बनाना आसान बनाता है।
- लाइन प्लॉट। लाइन प्लॉट किसी वेरिएबल के समय के साथ ट्रेंड को दिखाने के लिए उपयोग होता है। Seaborn का lineplot() फ़ंक्शन लाइन प्लॉट बनाना सरल करता है।
- हिस्टोग्राम। हिस्टोग्राम किसी वेरिएबल के वितरण को दिखाने के लिए उपयोग होता है। Seaborn का histplot() फ़ंक्शन हिस्टोग्राम बनाना आसान बनाता है।
- बॉक्स प्लॉट। बॉक्स प्लॉट किसी वेरिएबल के वितरण को दिखाने के लिए उपयोग होता है। Seaborn का boxplot() फ़ंक्शन बॉक्स प्लॉट बनाना सरल करता है।
- वायलिन प्लॉट। वायलिन प्लॉट बॉक्स प्लॉट जैसा होता है, लेकिन यह डेटा के वितरण का अधिक विस्तृत दृश्य प्रदान करता है। Seaborn का violinplot() फ़ंक्शन वायलिन प्लॉट बनाना आसान बनाता है।
- हीटमैप। हीटमैप अलग-अलग वेरिएबल्स के बीच सहसंबंध को दिखाने के लिए उपयोग होता है। Seaborn का heatmap() फ़ंक्शन हीटमैप बनाना आसान बनाता है।
- पेयर्प्लॉट। पेयर्प्लॉट कई वेरिएबल्स के बीच संबंध को दिखाने के लिए उपयोग होता है। Seaborn का pairplot() फ़ंक्शन पेयर्प्लॉट बनाना सरल करता है।
अब हम अगले खंड में इनके प्रत्येक के उदाहरण और विस्तृत व्याख्या देखेंगे।
फ़िगर-लेवल बनाम एक्सिस-लेवल फ़ंक्शंस
Seaborn में सबसे महत्वपूर्ण अवधारणाओं में से एक है फ़िगर-लेवल और एक्सिस-लेवल फ़ंक्शंस के बीच का अंतर। इसे समझना आपको डिबगिंग समय बचाएगा।
एक्सिस-लेवल फ़ंक्शंस (जैसे scatterplot(), histplot(), boxplot()) एक सिंगल Matplotlib axes पर ड्रॉ करते हैं। आप प्लॉट कहाँ जाए इसे नियंत्रित करने के लिए ax आर्ग्युमेंट पास कर सकते हैं:
import seaborn as sns
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
tips = sns.load_dataset("tips")
sns.histplot(data=tips, x="total_bill", ax=axes[0])
sns.boxplot(data=tips, x="day", y="total_bill", ax=axes[1])
plt.tight_layout()
plt.show()
फ़िगर-लेवल फ़ंक्शंस (relplot(), displot(), catplot()) अपनी खुद की फ़िगर बनाते हैं और col और row पैरामीटर्स का उपयोग करके डेटा को स्वतः कई पैनल्स में बाँट सकते हैं:
import seaborn as sns
tips = sns.load_dataset("tips")
sns.displot(data=tips, x="total_bill", col="time", kde=True)
फ़िगर-लेवल फ़ंक्शंस axes के बजाय FacetGrid ऑब्जेक्ट रिटर्न करते हैं, इसलिए आप शीर्षक और लेबल अलग तरह से सेट करते हैं: plt.xlabel() के बजाय g.set_axis_labels() और g.set_titles() का उपयोग करें।
Seaborn में प्लॉट कैसे बनाएं
चलिए अलग-अलग प्लॉट प्रकारों के कुछ उदाहरणों के साथ Seaborn को क्रिया में देखते हैं।
Seaborn स्कैटर प्लॉट बनाना
स्कैटर प्लॉट दो सतत वेरिएबल्स के बीच संबंध को विज़ुअलाइज़ करने के लिए उपयोग किए जाते हैं। प्लॉट पर प्रत्येक बिंदु एक डेटा पॉइंट को दर्शाता है, और x तथा y-अक्ष पर बिंदु की स्थिति दोनों वेरिएबल्स के मान दर्शाती है।
डेटा पॉइंट्स के अलग-अलग समूहों को अलग पहचान देने के लिए प्लॉट को अलग रंगों और मार्कर्स से कस्टमाइज़ किया जा सकता है। Seaborn में, स्कैटर प्लॉट scatterplot() फ़ंक्शन से बनाए जा सकते हैं।
import seaborn as sns
tips = sns.load_dataset("tips")
sns.scatterplot(x="total_bill", y="tip", data=tips)
आउटपुट:

इस सरल प्लॉट को प्लॉट के `hue` और `size` पैरामीटर्स को कस्टमाइज़ करके बेहतर बनाया जा सकता है। ऐसे करें:
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
# customize the scatter plot
sns.scatterplot(x="total_bill", y="tip", hue="sex", size="size", sizes=(50, 200), data=tips)
# add labels and title
plt.xlabel("Total Bill")
plt.ylabel("Tip")
plt.title("Relationship between Total Bill and Tip")
# display the plot
plt.show()
आउटपुट:

Seaborn लाइन प्लॉट बनाना
लाइन प्लॉट डेटा में समय या अन्य सतत वेरिएबल्स के साथ रुझानों को विज़ुअलाइज़ करने के लिए उपयोग किए जाते हैं। लाइन प्लॉट में, प्रत्येक डेटा पॉइंट एक रेखा से जुड़ा होता है, जो एक स्मूद कर्व बनाता है। Seaborn में, लाइन प्लॉट lineplot() फ़ंक्शन से बनाए जा सकते हैं। आप हमारे Seaborn line plot ट्यूटोरियल में और गहराई से पढ़ सकते हैं।
import seaborn as sns
fmri = sns.load_dataset("fmri")
sns.lineplot(x="timepoint", y="signal", data=fmri)
आउटपुट:

हम इसे डेटासेट की `event` और `region` कॉलम का उपयोग करके बहुत आसानी से कस्टमाइज़ कर सकते हैं।
import seaborn as sns
import matplotlib.pyplot as plt
fmri = sns.load_dataset("fmri")
# customize the line plot
sns.lineplot(x="timepoint", y="signal", hue="event", style="region", markers=True, dashes=False, data=fmri)
# add labels and title
plt.xlabel("Timepoint")
plt.ylabel("Signal Intensity")
plt.title("Changes in Signal Intensity over Time")
# display the plot
plt.show()
आउटपुट:

फिर से, मैंने बेस लाइन प्लॉट के लिए Seaborn और एक्सिस लेबल व टाइटल के लिए Matplotlib का उपयोग किया है।
Seaborn बार प्लॉट बनाना
बार प्लॉट किसी श्रेणीबद्ध वेरिएबल और एक सतत वेरिएबल के बीच संबंध को विज़ुअलाइज़ करने के लिए उपयोग किए जाते हैं। बार प्लॉट में, प्रत्येक बार किसी श्रेणी के लिए सतत वेरिएबल के औसत या माध्यिका (या किसी समेकन) का प्रतिनिधित्व करता है। Seaborn में, बार प्लॉट barplot() फ़ंक्शन से बनाए जा सकते हैं। अधिक जानकारी के लिए हमारा Seaborn barplot गाइड देखें।
import seaborn as sns
titanic = sns.load_dataset("titanic")
sns.barplot(x="class", y="fare", data=titanic)
आउटपुट:

आइए इस प्लॉट को डेटासेट की `sex` कॉलम शामिल करके कस्टमाइज़ करें।
import seaborn as sns
import matplotlib.pyplot as plt
titanic = sns.load_dataset("titanic")
# customize the bar plot
sns.barplot(x="class", y="fare", hue="sex", errorbar=None, palette="muted", data=titanic)
# add labels and title
plt.xlabel("Class")
plt.ylabel("Fare")
plt.title("Average Fare by Class and Gender on the Titanic")
# display the plot
plt.show()
आउटपुट:

Seaborn हिस्टोग्राम बनाना
हिस्टोग्राम किसी सतत वेरिएबल के वितरण को विज़ुअलाइज़ करते हैं। हिस्टोग्राम में, डेटा को बिन्स में बाँटा जाता है और प्रत्येक बिन की ऊँचाई उस बिन के भीतर डेटा पॉइंट्स की आवृत्ति या गिनती को दर्शाती है। Seaborn में, हिस्टोग्राम histplot() फ़ंक्शन से बनाए जा सकते हैं। हमारा Seaborn histogram गाइड इसे अधिक विस्तार से कवर करता है।
import seaborn as sns
iris = sns.load_dataset("iris")
sns.histplot(x="petal_length", data=iris)
आउटपुट:

हिस्टोग्राम को कस्टमाइज़ करना
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
# customize the histogram
sns.histplot(data=iris, x="petal_length", bins=20, kde=True, color="green")
# add labels and title
plt.xlabel("Petal Length (cm)")
plt.ylabel("Frequency")
plt.title("Distribution of Petal Lengths in Iris Flowers")
# display the plot
plt.show()
आउटपुट:

Seaborn डेन्सिटी प्लॉट बनाना
डेन्सिटी प्लॉट्स (जिन्हें कर्नेल डेन्सिटी एस्टीमेट या KDE प्लॉट भी कहते हैं) किसी सतत वेरिएबल के वितरण को डिस्क्रीट बिन्स के बजाय एक स्मूद कर्व के रूप में दिखाते हैं। जब आप बिन-साइज़ की संवेदनशीलता से बचते हुए वितरणों की तुलना करना चाहते हैं तो ये उपयोगी होते हैं। Seaborn में, इन्हें kdeplot() से बनाएँ।
import seaborn as sns
tips = sns.load_dataset("tips")
sns.kdeplot(data=tips, x="total_bill")
आउटपुट:

आइए प्लॉट को कस्टमाइज़ करके बेहतर बनाते हैं।
import seaborn as sns
import matplotlib.pyplot as plt
# Load the "tips" dataset from Seaborn
tips = sns.load_dataset("tips")
# Create a density plot of the "total_bill" column from the "tips" dataset
# We use the "hue" parameter to differentiate between "lunch" and "dinner" meal times
# We use the "fill" parameter to fill the area under the curve
# We adjust the "alpha" and "linewidth" parameters to make the plot more visually appealing
sns.kdeplot(data=tips, x="total_bill", hue="time", fill=True, alpha=0.6, linewidth=1.5)
# Add a title and labels to the plot using Matplotlib
plt.title("Density Plot of Total Bill by Meal Time")
plt.xlabel("Total Bill ($)")
plt.ylabel("Density")
# Show the plot
plt.show()
आउटपुट:

Seaborn बॉक्स प्लॉट बनाना
बॉक्स प्लॉट एक प्रकार का विज़ुअलाइज़ेशन है जो किसी डेटासेट के वितरण को दिखाता है। इन्हें आमतौर पर अलग-अलग श्रेणियों में एक या अधिक वेरिएबल्स के वितरण की तुलना करने के लिए उपयोग किया जाता है।
import seaborn as sns
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
आउटपुट:

डेटासेट की `time` कॉलम शामिल करके बॉक्स प्लॉट को कस्टमाइज़ करें।
import seaborn as sns
import matplotlib.pyplot as plt
# load the tips dataset from Seaborn
tips = sns.load_dataset("tips")
# create a box plot of total bill by day and meal time, using the "hue" parameter to differentiate between lunch and dinner
# customize the color scheme using the "palette" parameter
# adjust the linewidth and fliersize parameters to make the plot more visually appealing
sns.boxplot(x="day", y="total_bill", hue="time", data=tips, palette="Set3", linewidth=1.5, fliersize=4)
# add a title, xlabel, and ylabel to the plot using Matplotlib functions
plt.title("Box Plot of Total Bill by Day and Meal Time")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill ($)")
# display the plot
plt.show()
Seaborn वायलिन प्लॉट बनाना
वायलिन प्लॉट डेटा विज़ुअलाइज़ेशन का एक प्रकार है जो बॉक्स प्लॉट्स और डेन्सिटी प्लॉट्स दोनों के पहलुओं को जोड़ता है। यह आमतौर पर कर्नेल डेन्सिटी एस्टीमेटर द्वारा स्मूद की गई डेटा की डेन्सिटी एस्टीमेट, साथ ही बॉक्स प्लॉट-जैसे रूप में इंटरक्वार्टाइल रेंज (IQR) और मीडियन दिखाता है।
वायलिन की चौड़ाई डेन्सिटी एस्टीमेट का प्रतिनिधित्व करती है—चौड़े हिस्से उच्च डेन्सिटी दर्शाते हैं—और IQR तथा मीडियन वायलिन के भीतर एक सफेद डॉट और रेखा के रूप में दिखते हैं।
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
sns.violinplot(x="species", y="petal_length", data=iris)
plt.show()
आउटपुट:

Seaborn हीटमैप्स बनाना
हीटमैप किसी मैट्रिक्स में मानों को रंगों से दर्शाता है। डेटा विश्लेषण में, हीटमैप्स का उपयोग आमतौर पर सहसंबंध मैट्रिक्स को विज़ुअलाइज़ करने के लिए किया जाता है। हमारा Seaborn heatmaps गाइड उन्नत कस्टमाइज़ेशन विकल्पों को कवर करता है।
import seaborn as sns
import matplotlib.pyplot as plt
# Load the dataset
tips = sns.load_dataset('tips')
# Create a heatmap of the correlation between variables
corr = tips.select_dtypes(include="number").corr()
sns.heatmap(corr, annot=True, cmap="coolwarm")
# Show the plot
plt.show()
आउटपुट:

`flights` डेटासेट का उपयोग करते हुए हीटमैप का एक और उदाहरण।
import seaborn as sns
import matplotlib.pyplot as plt
# Load the dataset
flights = sns.load_dataset('flights')
# Pivot the data
flights = flights.pivot(index="month", columns="year", values="passengers")
# Create a heatmap
sns.heatmap(flights, cmap='Blues', annot=True, fmt='d')
# Set the title and axis labels
plt.title('Passengers per month')
plt.xlabel('Year')
plt.ylabel('Month')
# Show the plot
plt.show()
आउटपुट:

इस उदाहरण में, हम `seaborn` लाइब्रेरी के `flights` डेटासेट का उपयोग कर रहे हैं। हम .pivot() मेथड का उपयोग करके डेटा को हीटमैप प्रतिनिधित्व के लिए उपयुक्त रूप में पिवट करते हैं। फिर, हम sns.heatmap() फ़ंक्शन का उपयोग करके एक हीटमैप बनाते हैं और आर्ग्युमेंट के रूप में पिवट किए गए flights वेरिएबल को पास करते हैं।
Seaborn पेयर्प्लॉट्स बनाना
पेयर्प्लॉट्स एक प्रकार का विज़ुअलाइज़ेशन है जिसमें मैट्रिक्स फ़ॉर्मेट में कई पेयरवाइज़ स्कैटर प्लॉट्स दिखाए जाते हैं। प्रत्येक स्कैटर प्लॉट दो वेरिएबल्स के बीच संबंध दिखाता है, जबकि डायगोनल प्लॉट्स व्यक्तिगत वेरिएबल्स के वितरण दिखाते हैं।
import seaborn as sns
# Load iris dataset
iris = sns.load_dataset("iris")
# Create pair plot
sns.pairplot(data=iris)
# Show plot
plt.show()
आउटपुट:

हम इस प्लॉट को `hue` और `diag_kind` पैरामीटर का उपयोग करके कस्टमाइज़ कर सकते हैं।
import seaborn as sns
import matplotlib.pyplot as plt
# Load iris dataset
iris = sns.load_dataset("iris")
# Create pair plot with custom settings
sns.pairplot(data=iris, hue="species", diag_kind="kde", palette="husl")
# Set title
plt.title("Iris Dataset Pair Plot")
# Show plot
plt.show()
आउटपुट:

Seaborn जॉइंट प्लॉट्स बनाना
जॉइंट प्लॉट एक ही फ़िगर में केंद्र में स्कैटर प्लॉट और ऊपर व दाएँ किनारों पर मार्जिनल हिस्टोग्राम्स को जोड़ता है। यह लेआउट दो वेरिएबल्स के बीच संबंध और उनके व्यक्तिगत वितरण दोनों को एक नज़र में दिखाता है।
यहाँ iris डेटासेट का उपयोग करके एक साधारण seaborn जॉइंट प्लॉट बनाने का उदाहरण है:
import seaborn as sns
import matplotlib.pyplot as plt
# load iris dataset
iris = sns.load_dataset("iris")
# plot a joint plot of sepal length and sepal width
sns.jointplot(x="sepal_length", y="sepal_width", data=iris)
# display the plot
plt.show()
आउटपुट:

Seaborn फेसेट ग्रिड्स बनाना
FacetGrid सबप्लॉट्स की एक ग्रिड बनाता है—किसी श्रेणीबद्ध वेरिएबल के प्रत्येक अद्वितीय मान के लिए एक। यह आपको समूहों के बीच एक ही प्लॉट की तुलना करने देता है (उदाहरण के लिए, सप्ताह के प्रत्येक दिन के लिए टोटल बिल वितरण)।
import seaborn as sns
# load the tips dataset
tips = sns.load_dataset('tips')
# create a FacetGrid for day vs total_bill
g = sns.FacetGrid(tips, col="day")
# plot histogram for total_bill in each day
g.map(sns.histplot, "total_bill")
आउटपुट:

|
Python Seaborn चीट शीट |
Seaborn थीम्स और स्टाइलिंग
Seaborn आपके प्लॉट्स के समग्र रूप को नियंत्रित करने के लिए पाँच बिल्ट-इन थीम प्रदान करता है। किसी स्क्रिप्ट के शीर्ष पर sns.set_theme() कॉल करके इसे ग्लोबली लागू करें:
import seaborn as sns
sns.set_theme(style="whitegrid") # options: darkgrid, whitegrid, dark, white, ticks
आप context पैरामीटर से प्लॉट तत्वों के स्केल को भी नियंत्रित कर सकते हैं। यह अलग-अलग आउटपुट फ़ॉर्मैट्स के लिए फ़ॉन्ट आकार, लाइन चौड़ाई और अन्य तत्वों को समायोजित करता है:
sns.set_theme(style="whitegrid", context="talk") # options: paper, notebook, talk, poster
"notebook" कॉन्टेक्स्ट (डिफ़ॉल्ट) Jupyter नोटबुक्स के लिए उपयुक्त है, जबकि "talk" और "poster" प्रस्तुतियों के लिए सब कुछ बड़ा कर देते हैं।
Seaborn प्लॉट्स को कस्टमाइज़ करना
डिफ़ॉल्ट स्टाइलिंग से आगे, Seaborn आपको कलर पैलेट्स, फ़िगर साइज़, थीम्स और एनोटेशन्स पर नियंत्रण देता है। यहाँ सबसे सामान्य कस्टमाइज़ेशन दिए गए हैं:
कलर पैलेट्स बदलना
नीचे एक उदाहरण है जिससे आप अपने seaborn प्लॉट्स के कलर पैलेट्स बदल सकते हैं:
import seaborn as sns
import matplotlib.pyplot as plt
# नमूना डेटासेट लोड करें
tips = sns.load_dataset("tips")
# कलर पैलेट के साथ एक स्कैटर प्लॉट बनाएं
sns.scatterplot(x="total_bill", y="tip", hue="day", data=tips, palette="Set2")
# प्लॉट कस्टमाइज़ करें
plt.title("Total Bill vs Tip")
plt.xlabel("Total Bill ($)")
plt.ylabel("Tip ($)")
plt.show()
आउटपुट:

फ़िगर साइज़ समायोजित करना
अपने seaborn प्लॉट्स पर फ़िगर साइज़ समायोजित करने के लिए, आप नीचे दिए उदाहरण को संदर्भ के रूप में उपयोग कर सकते हैं:
import seaborn as sns
import matplotlib.pyplot as plt
# नमूना डेटासेट लोड करें
iris = sns.load_dataset("iris")
# समायोजित फ़िगर साइज़ के साथ एक वायलिन प्लॉट बनाएं
plt.figure(figsize=(8,6))
sns.violinplot(x="species", y="petal_length", data=iris)
# प्लॉट कस्टमाइज़ करें
plt.title("Petal Length Distribution by Species")
plt.xlabel("Species")
plt.ylabel("Petal Length (cm)")
plt.show()
आउटपुट:

एनोटेशन जोड़ना
एनोटेशन आपकी विज़ुअलाइज़ेशन को पढ़ना आसान बना सकते हैं। हमने नीचे उन्हें जोड़ने का एक उदाहरण दिखाया है:
import seaborn as sns
import matplotlib.pyplot as plt
# नमूना डेटासेट लोड करें
diamonds = sns.load_dataset("diamonds")
# एनोटेशन के साथ एक स्कैटर प्लॉट बनाएं
sns.scatterplot(x="carat", y="price", data=diamonds)
# एनोटेशन जोड़ें
plt.text(1, 18000, "Large, Expensive Diamonds", fontsize=12, color="red")
plt.text(2.5, 5000, "Small, Affordable Diamonds", fontsize=12, color="blue")
# प्लॉट कस्टमाइज़ करें
plt.title("Diamond Prices by Carat")
plt.xlabel("Carat (ct)")
plt.ylabel("Price ($)")
plt.show()
आउटपुट:

Seaborn विज़ुअलाइज़ेशन के लिए श्रेष्ठ प्रथाएँ
Seaborn का सर्वोत्तम उपयोग करने के लिए ध्यान में रखने योग्य कुछ श्रेष्ठ प्रथाएँ यहाँ दी गई हैं।
अपने डेटा के लिए सही प्लॉट प्रकार चुनें
Seaborn कई प्रकार के प्लॉट प्रदान करता है, जिनमें से प्रत्येक अलग-अलग प्रकार के डेटा और विश्लेषण के लिए बनाया गया है। अपनी खोजों को प्रभावी ढंग से संप्रेषित करने के लिए अपने डेटा के अनुरूप प्लॉट प्रकार चुनना महत्वपूर्ण है। उदाहरण के लिए, दो सतत चर के बीच संबंध को दिखाने के लिए स्कैटर प्लॉट बेहतर हो सकता है, जबकि श्रेणीबद्ध डेटा को दिखाने के लिए बार प्लॉट अधिक उपयुक्त हो सकता है।
रंग का प्रभावी उपयोग करें
डेटा विज़ुअलाइज़ेशन के लिए रंग एक शक्तिशाली साधन है, लेकिन इसका प्रभावी उपयोग आवश्यक है। बहुत अधिक या अत्यधिक चमकीले रंगों का उपयोग करने से बचें, क्योंकि इससे विज़ुअलाइज़ेशन पढ़ना मुश्किल हो सकता है। इसके बजाय, रंग का उपयोग महत्वपूर्ण जानकारी को हाईलाइट करने या समान डेटा पॉइंट्स को समूहित करने के लिए करें।
अपने अक्षों को लेबल करें और स्पष्ट शीर्षक दें
प्रभावी डेटा विज़ुअलाइज़ेशन के लिए लेबल और शीर्षक आवश्यक हैं। सुनिश्चित करें कि आप अपने अक्षों को स्पष्ट रूप से लेबल करें और अपनी विज़ुअलाइज़ेशन के लिए एक वर्णनात्मक शीर्षक दें। इससे आपके दर्शकों को आपका संदेश समझने में मदद मिलेगी।
दर्शकों का ध्यान रखें
विज़ुअलाइज़ेशन बनाते समय, दर्शकों और आप जो संदेश देना चाहते हैं, उसे ध्यान में रखना महत्वपूर्ण है। यदि आपके दर्शक गैर-तकनीकी हैं, तो स्पष्ट और संक्षिप्त भाषा का उपयोग करें, तकनीकी शब्दजाल से बचें और किसी भी सांख्यिकीय अवधारणा की स्पष्ट व्याख्या दें।
उपयुक्त सांख्यिकीय विश्लेषण का उपयोग करें
Seaborn आपके डेटा का विश्लेषण करने के लिए कई सांख्यिकीय फंक्शंस प्रदान करता है। किसी फंक्शन का चयन करते समय, वही चुनें जो आपके डेटा और अनुसंधान प्रश्न के लिए सबसे उपयुक्त हो।
अपनी विज़ुअलाइज़ेशन को कस्टमाइज़ करें
Seaborn में आपको कस्टमाइज़ेशन के कई विकल्प मिलेंगे जिनसे आप अपनी विज़ुअलाइज़ेशन को बेहतर बना सकते हैं। अलग-अलग फ़ॉन्ट, स्टाइल और रंगों के साथ प्रयोग करें ताकि वह संयोजन मिल सके जो आपका संदेश सबसे अच्छी तरह संप्रेषित करे।
उचित Python विज़ुअलाइज़ेशन लाइब्रेरी चुनना
अब तक जो देखा, उसके आधार पर आइए देखें कि Seaborn, Matplotlib और अन्य दो विकल्पों की तुलना में कैसा है, और किस उपयोग-परिदृश्य के लिए कौन-सी लाइब्रेरी उपयुक्त है:
| लाइब्रेरी | मजबूतियाँ | सीमाएँ | सबसे उपयुक्त |
|---|---|---|---|
| Matplotlib | हर फ़िगर तत्व पर पूरा नियंत्रण | वर्बोज़; बिल्ट-इन सांख्यिकी नहीं | कस्टम, प्रकाशन-गुणवत्ता वाले फ़िगर्स |
pandas .plot() |
DataFrames से बिना अतिरिक्त इम्पोर्ट के त्वरित प्लॉट्स | सीमित चार्ट प्रकार; न्यूनतम स्टाइलिंग | तेज़ अन्वेषणात्मक जाँच |
| Plotly | इंटरएक्टिव; वेब-एम्बेडेबल; 3D सपोर्ट | भारी निर्भरताएँ; कस्टमाइज़ेशन के लिए सीखने की कर्व | डैशबोर्ड्स, वेब ऐप्स, इंटरएक्टिव रिपोर्ट्स |
| Seaborn | सांख्यिकीय डिफ़ॉल्ट्स; साफ़ API; pandas इंटीग्रेशन | केवल स्टैटिक; कच्चे Matplotlib से कम लचीला | अन्वेषणात्मक डेटा विश्लेषण, सांख्यिकीय प्लॉट्स |
अधिकांश डेटा विश्लेषण कार्यों में, मैं प्रारंभिक अन्वेषण के लिए Seaborn, फाइन-ट्यूनिंग के लिए Matplotlib, और जब आउटपुट को इंटरएक्टिव होना हो तो Plotly का उपयोग करता/करती हूँ। ये एक-दूसरे के विकल्प भर नहीं हैं।
निष्कर्ष
Seaborn Python में एक शक्तिशाली डेटा विज़ुअलाइज़ेशन लाइब्रेरी है, जो सूचनात्मक सांख्यिकीय ग्राफ़िक्स बनाने के लिए सहज और आसान इंटरफ़ेस प्रदान करती है। अपने व्यापक विज़ुअलाइज़ेशन टूलसेट के साथ, Seaborn जटिल डेटा सेट्स से अंतर्दृष्टि को तेज़ी और कुशलता से खोजने और संप्रेषित करने में सक्षम बनाता है।
स्कैटर प्लॉट्स और लाइन प्लॉट्स से लेकर हीटमैप्स और फ़ैसेट ग्रिड्स तक, Seaborn अलग-अलग आवश्यकताओं के लिए विविध विज़ुअलाइज़ेशन प्रदान करता है। साथ ही, Pandas और Numpy के साथ इसका एकीकरण डेटा विश्लेषकों और वैज्ञानिकों के लिए इसे अनिवार्य टूल बनाता है।
Python Seaborn की इस शुरुआती मार्गदर्शिका के साथ, आप डेटा विज़ुअलाइज़ेशन की दुनिया का अन्वेषण शुरू कर सकते हैं और अपनी अंतर्दृष्टि को व्यापक दर्शकों तक प्रभावी ढंग से संप्रेषित कर सकते हैं।
यदि आप इस विषय में अपना ज्ञान और बढ़ाना चाहते हैं, तो हमारे Introduction to Data Visualization with Seaborn या Intermediate Data Visualization with Seaborn कोर्स देखें।
इन कोर्सों में, आप Seaborn के उन्नत विज़ुअलाइज़ेशन टूल्स का उपयोग करके American Housing Survey, कॉलेज ट्यूशन डेटा, और The Daily Show के मेहमानों जैसे विभिन्न वास्तविक-जीवन डेटासेट्स का विश्लेषण करना सीखेंगे।
आप हमारा निःशुल्क Seaborn चीट शीट भी देख सकते हैं।
Python Seaborn FAQs
Seaborn और Matplotlib में क्या अंतर है, और मुझे किसका उपयोग कब करना चाहिए?
Seaborn, Matplotlib के ऊपर बनाया गया एक हाई-लेवल लाइब्रेरी है जो सांख्यिकीय ग्राफ़िक्स बनाना सरल बनाता है, जबकि Matplotlib एक लो-लेवल लाइब्रेरी है जो हर प्लॉट एलिमेंट पर सूक्ष्म नियंत्रण देती है। जब आप कम कोड में आकर्षक सांख्यिकीय विज़ुअलाइज़ेशन चाहते हैं तो Seaborn का उपयोग करें, और जब आपको अत्यधिक कस्टमाइज़्ड या गैर-मानक प्लॉट चाहिए हों तो Matplotlib का सहारा लें। आप दोनों को साथ में भी उपयोग कर सकते हैं, क्योंकि Seaborn के प्लॉट्स को आगे Matplotlib कमांड्स से समायोजित किया जा सकता है।
क्या मैं Pandas DataFrames के अलावा अन्य डेटा स्रोतों के साथ Seaborn का उपयोग कर सकता/सकती हूँ?
Seaborn स्वाभाविक रूप से Pandas DataFrames के साथ काम करने के लिए डिज़ाइन किया गया है, लेकिन इसकी कई फ़ंक्शंस NumPy arrays, Python lists, या dictionaries भी स्वीकार करती हैं। फिर भी, अपने डेटा को पहले DataFrame में बदलना अनुशंसित है, क्योंकि इससे आप Seaborn की पूरी क्षमताओं का उपयोग कर सकते हैं, जिनमें कॉलम नामों को संदर्भित करने वाले hue, style, और size पैरामीटर्स शामिल हैं।
Seaborn के साथ प्लॉट बनाते समय missing values को कैसे संभालें?
Seaborn आम तौर पर प्लॉटिंग से पहले missing values को हटा कर उन्हें सहजता से संभाल लेता है, इसलिए NaN प्रविष्टियाँ आपके कोड को क्रैश नहीं करेंगी। हालांकि, missing data चुपचाप वितरणों या सांख्यिकीय अनुमानों को विकृत कर सकता है। सर्वोत्तम प्रथा यह है कि विज़ुअलाइज़ करने से पहले अपने DataFrame में missing values की जाँच करें और उन्हें स्पष्ट रूप से संभालें (इम्प्यूटेशन या हटाने के माध्यम से)।
Seaborn की बिल्ट-इन थीम्स क्या हैं और मैं उन्हें कैसे बदलूँ?
Seaborn पाँच पूर्वनिर्धारित थीम्स के साथ आता है (darkgrid, whitegrid, dark, white, और ticks) जिन्हें आप sns.set_style() के साथ लागू कर सकते हैं। आप प्लॉट तत्वों के स्केल (फ़ॉन्ट आकार, लाइन मोटाई) को sns.set_context() का उपयोग करके भी नियंत्रित कर सकते हैं, जैसे विकल्पों के साथ paper, notebook, talk, और poster, जिससे अलग-अलग प्रस्तुति प्रारूपों के लिए विज़ुअल्स को अनुकूलित करना आसान हो जाता है।
क्या Seaborn इंटरएक्टिव या वेब-आधारित विज़ुअलाइज़ेशन के लिए उपयुक्त है?
Seaborn मुख्य रूप से स्टैटिक प्लॉट्स बनाने के लिए डिज़ाइन किया गया है और अन्वेषणात्मक विश्लेषण, रिपोर्ट्स, और प्रकाशनों के लिए सबसे उपयुक्त है। यदि आपको वेब अनुप्रयोगों के लिए टूलटिप्स, ज़ूमिंग, या क्लिक योग्य तत्व जैसे इंटरएक्टिव फ़ीचर्स चाहिए, तो Plotly या Bokeh जैसी लाइब्रेरी बेहतर विकल्प हैं। आप, हालांकि, Jupyter नोटबुक्स के अंदर Seaborn का उपयोग अर्ध-इंटरएक्टिव खोजबीन वर्कफ़्लो के लिए कर सकते हैं।


