# रिश्तों की कल्पना: शहद के बारे में सब कुछ |![ सकेटच्नोते करने वाला [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)| |:---:| |रिश्तों की कल्पना - _सकेटच्नोते करने वाला [@nitya](https://twitter.com/nitya)_ | [यूनाइटेड स्टेट्स डिपार्टमेंट ऑफ़ एग्रीकल्चर](https://www.nass.usda.gov/) से प्राप्त एक डेटासेट के अनुसार, अपने शोध के प्रकृति फ़ोकस को जारी रखते हुए, आइए विभिन्न प्रकार के शहद के बीच संबंधों को दिखाने के लिए दिलचस्प विज़ुअलाइज़ेशन खोजें। लगभग_NASS/index.php)। लगभग ६०० वस्तुओं का यह डेटासेट कई यू.एस. राज्यों में शहद उत्पादन को प्रदर्शित करता है। इसलिए, उदाहरण के लिए, आप प्रत्येक राज्य के लिए प्रति वर्ष एक पंक्ति के साथ, 1998-2012 से किसी दिए गए राज्य में उत्पादित कॉलोनियों की संख्या, प्रति कॉलोनी उपज, कुल उत्पादन, स्टॉक, मूल्य प्रति पाउंड और शहद का मूल्य देख सकते हैं। . किसी दिए गए राज्य के प्रति वर्ष उत्पादन और, उदाहरण के लिए, उस राज्य में शहद की कीमत के बीच संबंधों की कल्पना करना दिलचस्प होगा। वैकल्पिक रूप से, आप प्रति कॉलोनी राज्यों की शहद उपज के बीच संबंधों की कल्पना कर सकते हैं। इस वर्ष की अवधि में विनाशकारी 'सीसीडी' या 'कॉलोनी पतन विकार' शामिल है जिसे पहली बार 2006 में देखा गया था (http://npic.orst.edu/envir/ccd.html), इसलिए यह अध्ययन करने के लिए एक मार्मिक डेटासेट है।🐝 ## [व्याख्यान पूर्व प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/22) इस पाठ में, आप सीबॉर्न का उपयोग कर सकते हैं, जिसका उपयोग आपने पहले किया है, चरों के बीच संबंधों की कल्पना करने के लिए एक अच्छे पुस्तकालय के रूप में। सीबॉर्न के `रिलप्लॉट` फ़ंक्शन का उपयोग विशेष रूप से दिलचस्प है जो स्कैटर प्लॉट्स और लाइन प्लॉट्स को जल्दी से '[सांख्यिकीय संबंध](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)' की कल्पना करने की अनुमति देता है, जो डेटा वैज्ञानिक को बेहतर ढंग से समझने की अनुमति दें कि चर एक दूसरे से कैसे संबंधित हैं। ## तितर बितर भूखंडों यह दिखाने के लिए स्कैटरप्लॉट का उपयोग करें कि प्रति राज्य शहद की कीमत साल दर साल कैसे विकसित हुई है। सीबॉर्न, `रिलप्लॉट` का उपयोग करते हुए, राज्य डेटा को आसानी से समूहित करता है और श्रेणीबद्ध और संख्यात्मक डेटा दोनों के लिए डेटा बिंदु प्रदर्शित करता है। आइए डेटा और सीबोर्न आयात करके शुरू करें: ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns honey = pd.read_csv('../../data/honey.csv') honey.head() ``` आपने देखा कि शहद के आंकड़ों में कई दिलचस्प कॉलम हैं, जिनमें साल और कीमत प्रति पाउंड शामिल हैं। आइए इस डेटा को यू.एस. राज्य द्वारा समूहीकृत करें: | state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | | ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | | 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` अक्ष को पर्याप्त लंबा बनाएं: ```python sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); ``` ![scatterplot 1](images/scatter1.png) अब, शहद रंग योजना के साथ समान डेटा दिखाएं ताकि यह दिखाया जा सके कि मूल्य वर्षों में कैसे विकसित होता है। साल दर साल बदलाव दिखाने के लिए आप 'ह्यू' पैरामीटर जोड़कर ऐसा कर सकते हैं: > ✅ [सीबॉर्न में आपके द्वारा उपयोग किए जा सकने वाले रंग पैलेट](https://seaborn.pydata.org/tutorial/color_palettes.html) के बारे में अधिक जानें - एक सुंदर इंद्रधनुष रंग योजना आज़माएं! ```python sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); ``` ![स्कैटरप्लॉट 2](images/scatter2.png) इस रंग योजना में बदलाव के साथ, आप देख सकते हैं कि शहद की कीमत प्रति पाउंड के मामले में पिछले कुछ वर्षों में स्पष्ट रूप से एक मजबूत प्रगति हुई है। वास्तव में, यदि आप सत्यापित करने के लिए डेटा में सेट किए गए नमूने को देखते हैं (उदाहरण के लिए किसी दिए गए राज्य, एरिज़ोना को चुनें) तो आप कुछ अपवादों के साथ, साल दर साल मूल्य वृद्धि का एक पैटर्न देख सकते हैं: | state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | | ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | | 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 | इस प्रगति की कल्पना करने का दूसरा तरीका रंग के बजाय आकार का उपयोग करना है। कलरब्लाइंड यूजर्स के लिए यह एक बेहतर विकल्प हो सकता है। डॉट परिधि में वृद्धि करके मूल्य में वृद्धि दिखाने के लिए अपना विज़ुअलाइज़ेशन संपादित करें: ```python sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); ``` आप डॉट्स के आकार को धीरे-धीरे बढ़ते हुए देख सकते हैं। ![स्कैटरप्लॉट 3](images/scatter3.png) क्या यह आपूर्ति और मांग का एक साधारण मामला है? जलवायु परिवर्तन और कॉलोनी के ढहने जैसे कारकों के कारण, क्या साल दर साल खरीद के लिए कम शहद उपलब्ध है, और इस तरह कीमत बढ़ जाती है? इस डेटासेट में कुछ चरों के बीच संबंध खोजने के लिए, आइए कुछ लाइन चार्ट देखें। ## लाइन चार्ट प्रश्‍न : क्‍या शहद की कीमत में प्रति पौंड वर्ष दर वर्ष स्पष्ट वृद्धि हुई है? सिंगल लाइन चार्ट बनाकर आप इसे आसानी से खोज सकते हैं: ```python sns.relplot(x="year", y="priceperlb", kind="line", data=honey); ``` Aउत्तर: हाँ, वर्ष २००३ के आसपास कुछ अपवादों को छोड़कर: ![लाइन चार्ट 1](इमेज/लाइन1.पीएनजी) क्योंकि सीबॉर्न एक पंक्ति के आसपास डेटा एकत्र कर रहा है, यह "माध्य की साजिश रचकर प्रत्येक x मान पर कई माप और माध्य के आसपास 95% विश्वास अंतराल" प्रदर्शित करता है। [स्रोत](https://seaborn.pydata.org/tutorial/relational.html)। इस समय लेने वाले व्यवहार को `ci=none` जोड़कर अक्षम किया जा सकता है। प्रश्न: क्या २००३ में हम शहद की आपूर्ति में भी वृद्धि देख सकते हैं? अगर आप साल दर साल कुल उत्पादन को देखें तो क्या होगा? ```python sns.relplot(x="year", y="totalprod", kind="line", data=honey); ``` ![लाइन चार्ट 2](इमेज/लाइन2.पीएनजी) उत्तर: वास्तव में नहीं। यदि आप कुल उत्पादन को देखें, तो वास्तव में उस विशेष वर्ष में वृद्धि हुई प्रतीत होती है, भले ही आम तौर पर इन वर्षों के दौरान उत्पादित होने वाले शहद की मात्रा में गिरावट आई हो। प्रश्न: उस मामले में, 2003 के आसपास शहद की कीमत में उस उछाल का क्या कारण हो सकता है? इसे खोजने के लिए, आप एक पहलू ग्रिड का पता लगा सकते हैं। ## पहलू ग्रिड फ़ैसिट ग्रिड आपके डेटासेट का एक पहलू लेते हैं (हमारे मामले में, आप 'वर्ष' चुन सकते हैं ताकि बहुत अधिक फ़ैसिट उत्पन्न न हों)। सीबॉर्न तब आपके चुने हुए x और y निर्देशांकों में से प्रत्येक के लिए अधिक आसान दृश्य तुलना के लिए एक प्लॉट बना सकता है। क्या 2003 इस प्रकार की तुलना में अलग है? [सीबॉर्न का दस्तावेज़ीकरण](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid) द्वारा सुझाए गए अनुसार `relplot` का उपयोग जारी रखते हुए एक पहलू ग्रिड बनाएं। ```python sns.relplot( data=honey, x="yieldpercol", y="numcol", col="year", col_wrap=3, kind="line" ``` इस विज़ुअलाइज़ेशन में, आप प्रति कॉलोनी उपज और साल दर साल कॉलोनियों की संख्या की तुलना कॉलम के लिए 3 पर सेट रैप के साथ कर सकते हैं: ![पहलू ग्रिड](छवियां/पहलू.पीएनजी) इस डेटासेट के लिए, विशेष रूप से कॉलोनियों की संख्या और उनकी उपज, साल दर साल और राज्य दर राज्य के संबंध में कुछ भी नहीं है। क्या इन दो चरों के बीच संबंध खोजने का कोई अलग तरीका है? ## ड्यूल-लाइन प्लॉट्स एक दूसरे के ऊपर दो लाइनप्लॉट्स को सुपरइम्पोज़ करके, सीबॉर्न की 'डेस्पाइन' का उपयोग करके उनके शीर्ष और दाएं स्पाइन को हटाने के लिए, और उपयोग करके एक मल्टीलाइन प्लॉट आज़माएं`ax.twinx` [Matplotlib . से व्युत्पन्न](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx चार्ट को x अक्ष साझा करने और दो y अक्ष प्रदर्शित करने की अनुमति देता है। तो, प्रति कॉलोनी उपज और कॉलोनियों की संख्या प्रदर्शित करें, जो आरोपित हैं: ```python 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(); ``` ![सुपरइम्पोज्ड प्लॉट्स](images/dual-line.png) हालांकि वर्ष 2003 के आस-पास कुछ भी सामने नहीं आया, यह हमें इस पाठ को एक छोटे से सुखद नोट पर समाप्त करने की अनुमति देता है: जबकि कुल मिलाकर कॉलोनियों की संख्या घट रही है, कॉलोनियों की संख्या स्थिर हो रही है, भले ही प्रति कॉलोनी उनकी उपज घट रही हो . जाओ, मधुमक्खियों, जाओ! ❤️ ## चुनौती इस पाठ में, आपने फैसेट ग्रिड सहित स्कैटरप्लॉट और लाइन ग्रिड के अन्य उपयोगों के बारे में कुछ और सीखा। किसी भिन्न डेटासेट का उपयोग करके फ़ैसिट ग्रिड बनाने के लिए स्वयं को चुनौती दें, शायद एक जिसे आपने इन पाठों से पहले उपयोग किया था। ध्यान दें कि उन्हें बनाने में कितना समय लगता है और इन तकनीकों का उपयोग करके आपको कितने ग्रिड बनाने की आवश्यकता है, इस बारे में आपको सावधान रहने की आवश्यकता है। ## [व्याख्यान के बाद प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/23) ## समीक्षा और आत्म अध्ययन रेखा भूखंड सरल या काफी जटिल हो सकते हैं। [सीबॉर्न डॉक्युमेंटेशन](https://seaborn.pydata.org/generated/seaborn.lineplot.html) को विभिन्न तरीकों से पढ़कर आप उन्हें बना सकते हैं। डॉक्स में सूचीबद्ध अन्य विधियों के साथ इस पाठ में आपके द्वारा बनाए गए लाइन चार्ट को बढ़ाने का प्रयास करें। ## कार्यभार [मधुमक्खी के छत्ते में गोता लगाएँ] (असाइनमेंट.एमडी)