# सम्बन्धहरू देखाउने: महको कथा 🍯 |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)| |:---:| |सम्बन्धहरू देखाउने - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | हाम्रो अनुसन्धानको प्रकृति केन्द्रित विषयलाई अगाडि बढाउँदै, विभिन्न प्रकारका महहरू बीचको सम्बन्ध देखाउन रोचक दृश्यहरू खोजौं, जुन [संयुक्त राज्य कृषि विभाग](https://www.nass.usda.gov/About_NASS/index.php) बाट प्राप्त डेटासेटमा आधारित छ। यो लगभग ६०० वस्तुहरूको डेटासेटले धेरै अमेरिकी राज्यहरूमा मह उत्पादन देखाउँछ। उदाहरणका लागि, तपाईंले १९९८-२०१२ को अवधिमा प्रत्येक राज्यको लागि प्रति वर्ष एक पङ्क्ति सहित, उपनिवेशहरूको संख्या, प्रति उपनिवेश उत्पादन, कुल उत्पादन, स्टकहरू, प्रति पाउन्ड मूल्य, र उत्पादनको मूल्य हेर्न सक्नुहुन्छ। यो रोचक हुनेछ कि कुनै राज्यको वार्षिक उत्पादन र त्यस राज्यको महको मूल्य बीचको सम्बन्ध देखाउने दृश्य बनाउने। वैकल्पिक रूपमा, तपाईंले राज्यहरूको प्रति उपनिवेश मह उत्पादनको सम्बन्ध देखाउन सक्नुहुन्छ। यो समयावधि २००६ मा पहिलो पटक देखिएको 'CCD' वा 'Colony Collapse Disorder' (http://npic.orst.edu/envir/ccd.html) समेट्छ, त्यसैले यो अध्ययन गर्न भावनात्मक डेटासेट हो। 🐝 ## [पाठ अघि क्विज](https://ff-quizzes.netlify.app/en/ds/quiz/22) यस पाठमा, तपाईंले पहिले प्रयोग गरिसकेको Seaborn लाई प्रयोग गर्न सक्नुहुन्छ, जुन चरहरू बीचको सम्बन्ध देखाउन राम्रो पुस्तकालय हो। विशेष रूपमा रोचक छ Seaborn को `relplot` फङ्क्शन, जसले छिटो '[सांख्यिकीय सम्बन्धहरू](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)' देखाउन स्क्याटर प्लट र लाइन प्लटहरू अनुमति दिन्छ, जसले डेटा वैज्ञानिकलाई चरहरू एकअर्कासँग कसरी सम्बन्धित छन् भन्ने राम्रोसँग बुझ्न मद्दत गर्दछ। ## स्क्याटरप्लटहरू महको मूल्य वर्ष दर वर्ष, प्रति राज्य कसरी परिवर्तन भएको छ भन्ने देखाउन स्क्याटरप्लट प्रयोग गर्नुहोस्। Seaborn ले `relplot` प्रयोग गरेर राज्यको डेटा समूहबद्ध गर्दछ र श्रेणीगत र संख्यात्मक डेटा दुवैका लागि डेटा बिन्दुहरू देखाउँछ। आउनुहोस्, डेटा र Seaborn आयात गरेर सुरु गरौं: ```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](../../../../translated_images/ne/scatter1.5e1aa5fd6706c5d1.webp) अब, महको रंग योजनाको प्रयोग गरेर वर्ष दर वर्ष मूल्य कसरी परिवर्तन भएको छ भन्ने देखाउनुहोस्। तपाईंले 'hue' प्यारामिटर थपेर परिवर्तन देखाउन सक्नुहुन्छ: > ✅ Seaborn मा प्रयोग गर्न सकिने [रंग योजनाहरू](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); ``` ![scatterplot 2](../../../../translated_images/ne/scatter2.c0041a58621ca702.webp) यो रंग योजनाको परिवर्तनसँगै, तपाईंले स्पष्ट रूपमा देख्न सक्नुहुन्छ कि महको प्रति पाउन्ड मूल्यमा वर्ष दर वर्ष बलियो प्रगति भएको छ। वास्तवमा, यदि तपाईं डेटाको नमूना सेट हेर्नुहुन्छ (उदाहरणका लागि, एरिजोना राज्य चयन गर्नुहोस्) तपाईंले वर्ष दर वर्ष मूल्य वृद्धि भएको ढाँचा देख्न सक्नुहुन्छ, केही अपवादहरू सहित: | 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); ``` तपाईंले बिन्दुको आकार क्रमशः बढ्दै गएको देख्न सक्नुहुन्छ। ![scatterplot 3](../../../../translated_images/ne/scatter3.3c160a3d1dcb36b3.webp) के यो आपूर्ति र मागको साधारण मामला हो? जलवायु परिवर्तन र उपनिवेश पतन जस्ता कारणहरूले गर्दा, वर्ष दर वर्ष किन महको मूल्य बढ्दै गएको छ? यस डेटासेटका केही चरहरू बीचको सम्बन्ध पत्ता लगाउन, आउनुहोस् केही लाइन चार्टहरू अन्वेषण गरौं। ## लाइन चार्टहरू प्रश्न: महको प्रति पाउन्ड मूल्य वर्ष दर वर्ष स्पष्ट रूपमा बढेको छ? तपाईंले यो सबैभन्दा सजिलै एकल लाइन चार्ट बनाएर पत्ता लगाउन सक्नुहुन्छ: ```python sns.relplot(x="year", y="priceperlb", kind="line", data=honey); ``` उत्तर: हो, केही अपवादहरू सहित, विशेष गरी २००३ को वरिपरि: ![line chart 1](../../../../translated_images/ne/line1.f36eb465229a3b1f.webp) ✅ किनकि Seaborn ले एक लाइन वरिपरि डेटा समेट्दै छ, यसले "प्रत्येक x मानमा बहु मापनहरू औसत र औसत वरिपरि ९५% विश्वास अन्तराल प्लट गरेर देखाउँछ।" [स्रोत](https://seaborn.pydata.org/tutorial/relational.html)। यो समय लाग्ने व्यवहारलाई `ci=None` थपेर अक्षम गर्न सकिन्छ। प्रश्न: खैर, २००३ मा महको आपूर्तिमा पनि वृद्धि देख्न सकिन्छ? यदि तपाईंले वर्ष दर वर्ष कुल उत्पादन हेर्नुभयो भने के हुन्छ? ```python sns.relplot(x="year", y="totalprod", kind="line", data=honey); ``` ![line chart 2](../../../../translated_images/ne/line2.a5b3493dc01058af.webp) उत्तर: वास्तवमा होइन। यदि तपाईंले कुल उत्पादन हेर्नुभयो भने, यो विशेष वर्षमा बढेको जस्तो देखिन्छ, यद्यपि सामान्य रूपमा मह उत्पादनको मात्रा यी वर्षहरूमा घट्दै गएको छ। प्रश्न: त्यस अवस्थामा, २००३ को वरिपरि महको मूल्यमा भएको वृद्धि के कारण हुन सक्छ? यो पत्ता लगाउन, तपाईंले फेसेट ग्रिड अन्वेषण गर्न सक्नुहुन्छ। ## फेसेट ग्रिडहरू फेसेट ग्रिडहरूले तपाईंको डेटासेटको एउटा पक्ष (हाम्रो मामलामा, 'वर्ष' चयन गर्न सक्नुहुन्छ ताकि धेरै धेरै फेसेटहरू उत्पादन नगरियोस्) लिन्छ। Seaborn ले त्यसपछि तपाईंको चयन गरिएको x र y निर्देशांकहरूको प्रत्येक फेसेटको लागि प्लट बनाउन सक्छ, सजिलो दृश्य तुलना गर्न। के २००३ यस प्रकारको तुलना मा बाहिर देखिन्छ? Seaborn को [डकुमेन्टेसन](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" ) ``` यस दृश्यमा, तपाईंले प्रति उपनिवेश उत्पादन र उपनिवेशहरूको संख्या वर्ष दर वर्ष, राज्य दर राज्य, सँगसँगै तुलना गर्न सक्नुहुन्छ, स्तम्भहरूको लागि wrap लाई ३ मा सेट गरेर: ![facet grid](../../../../translated_images/ne/facet.6a34851dcd540050.webp) यस डेटासेटका लागि, उपनिवेशहरूको संख्या र तिनीहरूको उत्पादनको सम्बन्धमा वर्ष दर वर्ष र राज्य दर राज्य केही विशेष कुरा बाहिर देखिँदैन। के यी दुई चरहरू बीचको सम्बन्ध पत्ता लगाउन हेर्ने फरक तरिका छ? ## डुअल-लाइन प्लटहरू Seaborn को 'despine' प्रयोग गरेर दुई लाइनप्लटहरू एकअर्काको माथि सुपरइम्पोज गरेर, र `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(); ``` ![superimposed plots](../../../../translated_images/ne/dual-line.a4c28ce659603fab.webp) २००३ को वरिपरि आँखा बाहिर केही नजम्पे पनि, यसले हामीलाई यो पाठलाई अलिकति खुशीको नोटमा अन्त्य गर्न अनुमति दिन्छ: उपनिवेशहरूको संख्या घट्दै गएको भए पनि, उपनिवेशहरूको संख्या स्थिर हुँदैछ, यद्यपि तिनीहरूको प्रति उपनिवेश उत्पादन घट्दैछ। जाऊ, महका मौरीहरू, जाऊ! 🐝❤️ ## 🚀 चुनौती यस पाठमा, तपाईंले स्क्याटरप्लटहरू र लाइन ग्रिडहरूको अन्य प्रयोगहरू, फेसेट ग्रिडहरू सहित, बारेमा अलिकति बढी सिक्नुभयो। चुनौती दिनुहोस् कि तपाईंले यस पाठहरू अघि प्रयोग गरेको फरक डेटासेट प्रयोग गरेर फेसेट ग्रिड बनाउनुहोस्। तिनीहरू बनाउन कति समय लाग्छ र यी प्रविधिहरू प्रयोग गरेर तपाईंले कति ग्रिडहरू बनाउन आवश्यक छ भन्ने कुरामा ध्यान दिनुहोस्। ## [पाठ पछि क्विज](https://ff-quizzes.netlify.app/en/ds/quiz/23) ## समीक्षा र आत्म अध्ययन लाइन प्लटहरू सरल वा धेरै जटिल हुन सक्छन्। [Seaborn डकुमेन्टेसन](https://seaborn.pydata.org/generated/seaborn.lineplot.html) मा विभिन्न तरिकाहरूमा निर्माण गर्न सकिने लाइन प्लटहरूको बारेमा केही पढाइ गर्नुहोस्। तपाईंले यस पाठमा निर्माण गरेका लाइन चार्टहरूलाई डकुमेन्टेसनमा सूचीबद्ध अन्य विधिहरू प्रयोग गरेर सुधार गर्ने प्रयास गर्नुहोस्। ## असाइनमेन्ट [Dive into the beehive](assignment.md) --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी यथासम्भव सटीकता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। यसको मूल भाषामा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्त्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार हुने छैनौं।