23 KiB
संबंधों का चित्रण: शहद के बारे में सब कुछ 🍯
![]() |
---|
संबंधों का चित्रण - @nitya द्वारा स्केच नोट |
हमारे शोध के प्रकृति केंद्रित दृष्टिकोण को जारी रखते हुए, आइए विभिन्न प्रकार के शहद के बीच संबंधों को दिखाने के लिए दिलचस्प चित्रण खोजें, जो संयुक्त राज्य कृषि विभाग से प्राप्त डेटा सेट पर आधारित हैं।
यह डेटा सेट लगभग 600 आइटम्स का है, जो कई अमेरिकी राज्यों में शहद उत्पादन को दर्शाता है। उदाहरण के लिए, आप किसी दिए गए राज्य में 1998-2012 के बीच प्रति वर्ष कॉलोनियों की संख्या, प्रति कॉलोनी उत्पादन, कुल उत्पादन, स्टॉक्स, प्रति पाउंड कीमत, और उत्पादित शहद का मूल्य देख सकते हैं, जिसमें प्रत्येक राज्य के लिए प्रति वर्ष एक पंक्ति होती है।
किसी दिए गए राज्य के वार्षिक उत्पादन और उस राज्य में शहद की कीमत के बीच संबंध को चित्रित करना दिलचस्प होगा। वैकल्पिक रूप से, आप राज्यों के प्रति कॉलोनी शहद उत्पादन के बीच संबंध को चित्रित कर सकते हैं। यह समय अवधि 2006 में पहली बार देखे गए विनाशकारी 'CCD' या 'कॉलोनी कॉलैप्स डिसऑर्डर' (http://npic.orst.edu/envir/ccd.html) को कवर करती है, इसलिए यह अध्ययन करने के लिए एक महत्वपूर्ण डेटा सेट है। 🐝
प्री-लेक्चर क्विज़
इस पाठ में, आप Seaborn का उपयोग कर सकते हैं, जिसे आपने पहले उपयोग किया है, यह चर के बीच संबंधों को चित्रित करने के लिए एक अच्छा लाइब्रेरी है। विशेष रूप से दिलचस्प है Seaborn का relplot
फ़ंक्शन, जो स्कैटर प्लॉट्स और लाइन प्लॉट्स को जल्दी से 'सांख्यिकीय संबंधों' को चित्रित करने की अनुमति देता है, जिससे डेटा वैज्ञानिक को यह बेहतर समझने में मदद मिलती है कि चर एक-दूसरे से कैसे संबंधित हैं।
स्कैटरप्लॉट्स
शहद की कीमत कैसे विकसित हुई है, इसे वर्ष दर वर्ष, प्रति राज्य दिखाने के लिए एक स्कैटरप्लॉट का उपयोग करें। Seaborn, relplot
का उपयोग करते हुए, राज्य डेटा को सुविधाजनक रूप से समूहित करता है और श्रेणीबद्ध और संख्यात्मक डेटा दोनों के लिए डेटा पॉइंट्स प्रदर्शित करता है।
आइए डेटा और Seaborn को इम्पोर्ट करके शुरू करें:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
honey = pd.read_csv('../../data/honey.csv')
honey.head()
आप देखेंगे कि शहद डेटा में कई दिलचस्प कॉलम हैं, जिनमें वर्ष और प्रति पाउंड कीमत शामिल हैं। आइए इस डेटा का अन्वेषण करें, जिसे अमेरिकी राज्यों द्वारा समूहित किया गया है:
राज्य | कॉलोनियों की संख्या | प्रति कॉलोनी उत्पादन | कुल उत्पादन | स्टॉक्स | प्रति पाउंड कीमत | उत्पादन मूल्य | वर्ष |
---|---|---|---|---|---|---|---|
AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 |
AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 |
AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 |
CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 |
CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 |
एक साधारण स्कैटरप्लॉट बनाएं जो शहद की प्रति पाउंड कीमत और उसके अमेरिकी राज्य के बीच संबंध को दिखाए। y
अक्ष को इतना लंबा बनाएं कि सभी राज्यों को प्रदर्शित किया जा सके:
sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5);
अब, वही डेटा शहद के रंग योजना के साथ दिखाएं ताकि यह दिखाया जा सके कि कीमत वर्षों के साथ कैसे विकसित होती है। आप इसे 'hue' पैरामीटर जोड़कर कर सकते हैं ताकि वर्ष दर वर्ष परिवर्तन दिखाया जा सके:
✅ Seaborn में उपयोग की जाने वाली रंग योजनाओं के बारे में अधिक जानें - एक सुंदर इंद्रधनुष रंग योजना आज़माएं!
sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5);
इस रंग योजना परिवर्तन के साथ, आप देख सकते हैं कि वर्षों के साथ शहद की प्रति पाउंड कीमत में स्पष्ट रूप से एक मजबूत प्रगति है। वास्तव में, यदि आप डेटा के एक नमूना सेट को सत्यापित करने के लिए देखें (उदाहरण के लिए, एक राज्य, एरिज़ोना चुनें) तो आप देख सकते हैं कि कुछ अपवादों के साथ, कीमत में वर्ष दर वर्ष वृद्धि का एक पैटर्न है:
राज्य | कॉलोनियों की संख्या | प्रति कॉलोनी उत्पादन | कुल उत्पादन | स्टॉक्स | प्रति पाउंड कीमत | उत्पादन मूल्य | वर्ष |
---|---|---|---|---|---|---|---|
AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 |
AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 |
AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 |
AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 |
AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 |
AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 |
AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 |
AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 |
AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 |
AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 |
AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 |
AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 |
AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 |
AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 |
AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 |
एक अन्य तरीका इस प्रगति को चित्रित करने का यह है कि रंग के बजाय आकार का उपयोग करें। रंग-अंधता वाले उपयोगकर्ताओं के लिए, यह एक बेहतर विकल्प हो सकता है। अपने चित्रण को संपादित करें ताकि कीमत में वृद्धि को डॉट के परिधि में वृद्धि के रूप में दिखाया जा सके:
sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5);
आप देख सकते हैं कि डॉट्स का आकार धीरे-धीरे बढ़ रहा है।
क्या यह मांग और आपूर्ति का एक साधारण मामला है? जलवायु परिवर्तन और कॉलोनी कॉलैप्स जैसे कारकों के कारण, क्या वर्ष दर वर्ष खरीद के लिए कम शहद उपलब्ध है, और इसलिए कीमत बढ़ रही है?
इस डेटा सेट में कुछ चर के बीच संबंध खोजने के लिए, आइए कुछ लाइन चार्ट्स का अन्वेषण करें।
लाइन चार्ट्स
प्रश्न: क्या शहद की प्रति पाउंड कीमत में वर्ष दर वर्ष स्पष्ट वृद्धि है? आप इसे सबसे आसानी से एक सिंगल लाइन चार्ट बनाकर खोज सकते हैं:
sns.relplot(x="year", y="priceperlb", kind="line", data=honey);
उत्तर: हां, कुछ अपवादों के साथ, विशेष रूप से 2003 के आसपास:
✅ क्योंकि Seaborn डेटा को एक लाइन के चारों ओर समेकित कर रहा है, यह "प्रत्येक x मान पर कई मापों को औसत और औसत के चारों ओर 95% विश्वास अंतराल को प्लॉट करके प्रदर्शित करता है"। स्रोत। इस समय लेने वाले व्यवहार को ci=None
जोड़कर अक्षम किया जा सकता है।
प्रश्न: खैर, 2003 में क्या हम शहद की आपूर्ति में भी वृद्धि देख सकते हैं? यदि आप कुल उत्पादन को वर्ष दर वर्ष देखें तो क्या होगा?
sns.relplot(x="year", y="totalprod", kind="line", data=honey);
उत्तर: वास्तव में नहीं। यदि आप कुल उत्पादन को देखें, तो ऐसा लगता है कि उस विशेष वर्ष में यह वास्तव में बढ़ गया है, हालांकि सामान्य रूप से शहद का उत्पादन इन वर्षों के दौरान गिरावट में है।
प्रश्न: उस स्थिति में, 2003 के आसपास शहद की कीमत में वृद्धि का कारण क्या हो सकता है?
इसे खोजने के लिए, आप एक फेसट ग्रिड का अन्वेषण कर सकते हैं।
फेसट ग्रिड्स
फेसट ग्रिड्स आपके डेटा सेट के एक पहलू को लेते हैं (हमारे मामले में, आप 'वर्ष' चुन सकते हैं ताकि बहुत अधिक फेसट्स उत्पन्न न हों)। Seaborn तब आपके चुने हुए x और y निर्देशांक के लिए प्रत्येक फेसट का एक प्लॉट बना सकता है ताकि तुलना करना आसान हो। क्या 2003 इस प्रकार की तुलना में अलग दिखता है?
Seaborn के डॉक्यूमेंटेशन द्वारा अनुशंसित relplot
का उपयोग जारी रखते हुए एक फेसट ग्रिड बनाएं।
sns.relplot(
data=honey,
x="yieldpercol", y="numcol",
col="year",
col_wrap=3,
kind="line"
)
इस चित्रण में, आप कॉलोनी की प्रति कॉलोनी उत्पादन और कॉलोनियों की संख्या को वर्ष दर वर्ष, राज्य दर राज्य, 3 कॉलम पर रैप सेट के साथ साइड बाय साइड तुलना कर सकते हैं:
इस डेटा सेट के लिए, कॉलोनियों की संख्या और उनके उत्पादन के संबंध में वर्ष दर वर्ष और राज्य दर राज्य कुछ खास नहीं दिखता। क्या इन दो चर के बीच संबंध खोजने के लिए इसे देखने का कोई अलग तरीका है?
डुअल-लाइन प्लॉट्स
Seaborn के 'despine' का उपयोग करके दो लाइनप्लॉट्स को एक-दूसरे के ऊपर सुपरइम्पोज़ करके एक मल्टीलाइन प्लॉट आज़माएं, और Matplotlib से ax.twinx का उपयोग करें। Twinx एक चार्ट को x अक्ष साझा करने और दो y अक्ष प्रदर्शित करने की अनुमति देता है। तो, कॉलोनी की प्रति कॉलोनी उत्पादन और कॉलोनियों की संख्या को सुपरइम्पोज़ करके प्रदर्शित करें:
fig, ax = plt.subplots(figsize=(12,6))
lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey,
label = 'Number of bee colonies', legend=False)
sns.despine()
plt.ylabel('# colonies')
plt.title('Honey Production Year over Year');
ax2 = ax.twinx()
lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r",
label ='Yield per colony', legend=False)
sns.despine(right=False)
plt.ylabel('colony yield')
ax.figure.legend();
हालांकि 2003 के आसपास कुछ भी आंखों को नहीं खटकता, यह हमें इस पाठ को थोड़ा खुशहाल नोट पर समाप्त करने की अनुमति देता है: जबकि कॉलोनियों की संख्या में समग्र रूप से गिरावट हो रही है, कॉलोनियों की संख्या स्थिर हो रही है, भले ही उनकी प्रति कॉलोनी उत्पादन घट रहा हो।
जाओ, मधुमक्खियां, जाओ!
🐝❤️
🚀 चुनौती
इस पाठ में, आपने स्कैटरप्लॉट्स और लाइन ग्रिड्स के अन्य उपयोगों के बारे में थोड़ा और सीखा, जिसमें फेसट ग्रिड्स शामिल हैं। खुद को चुनौती दें कि एक अलग डेटा सेट का उपयोग करके एक फेसट ग्रिड बनाएं, शायद एक जिसे आपने इन पाठों से पहले उपयोग किया था। ध्यान दें कि उन्हें बनाने में कितना समय लगता है और आपको इन तकनीकों का उपयोग करते हुए कितने ग्रिड्स बनाने की आवश्यकता है।
पोस्ट-लेक्चर क्विज़
समीक्षा और स्व-अध्ययन
लाइन प्लॉट्स सरल या काफी जटिल हो सकते हैं। Seaborn डॉक्यूमेंटेशन में थोड़ा पढ़ें कि आप उन्हें बनाने के विभिन्न तरीकों पर। इस पाठ में आपने जो लाइन चार्ट्स बनाए हैं, उन्हें डॉक्यूमेंटेशन में सूचीबद्ध अन्य तरीकों से बढ़ाने का प्रयास करें।
असाइनमेंट
मधुमक्खी के छत्ते में गोता लगाएं
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।