# సంబంధాలను దృశ్యీకరించడం: తేనె గురించి అన్ని 🍯 |![ స్కెచ్ నోట్ [(@sketchthedocs)](https://sketchthedocs.dev) ద్వారా ](../../sketchnotes/12-Visualizing-Relationships.png)| |:---:| |సంబంధాలను దృశ్యీకరించడం - _స్కెచ్ నోట్ [@nitya](https://twitter.com/nitya) ద్వారా_ | మా పరిశోధనలో ప్రకృతి దృష్టిని కొనసాగిస్తూ, [యునైటెడ్ స్టేట్స్ డిపార్ట్‌మెంట్ ఆఫ్ అగ్రికల్చర్](https://www.nass.usda.gov/About_NASS/index.php) నుండి పొందిన డేటాసెట్ ఆధారంగా వివిధ రకాల తేనె మధ్య సంబంధాలను చూపించే ఆసక్తికరమైన దృశ్యీకరణలను కనుగొనుకుందాం. ఈ సుమారు 600 అంశాల డేటాసెట్ అనేక యుఎస్ రాష్ట్రాలలో తేనె ఉత్పత్తిని ప్రదర్శిస్తుంది. ఉదాహరణకు, మీరు కాలనీల సంఖ్య, కాలనీకి ఉత్పత్తి, మొత్తం ఉత్పత్తి, నిల్వలు, పౌండ్‌కు ధర, మరియు 1998-2012 మధ్య ప్రతి రాష్ట్రంలో ఉత్పత్తి విలువను సంవత్సరానికి ఒక వరుసగా చూడవచ్చు. ఒక రాష్ట్రం యొక్క సంవత్సరానికి ఉత్పత్తి మరియు ఆ రాష్ట్రంలో తేనె ధర మధ్య సంబంధాన్ని దృశ్యీకరించడం ఆసక్తికరం. లేదా, రాష్ట్రాల తేనె ఉత్పత్తి కాలనీకి మధ్య సంబంధాన్ని చూపవచ్చు. ఈ సంవత్సరాల వ్యవధి 2006లో మొదటగా కనిపించిన 'CCD' లేదా 'కాలనీ కాలాప్స్ డిసార్డర్' (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/te/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/te/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/te/scatter3.3c160a3d1dcb36b3.webp) ఇది సరళమైన సరఫరా మరియు డిమాండ్ కేసా కాదా? వాతావరణ మార్పు మరియు కాలనీ కాలాప్స్ వంటి కారణాల వల్ల, సంవత్సరాల వారీగా తేనె కొరకు అందుబాటు తగ్గుతుందా, అందువల్ల ధర పెరుగుతుందా? ఈ డేటాసెట్ లోని కొన్ని వేరియబుల్స్ మధ్య సంబంధాన్ని కనుగొనడానికి, కొన్ని లైన్ చార్ట్లను పరిశీలిద్దాం. ## లైన్ చార్ట్లు ప్రశ్న: తేనె ధర సంవత్సరాల వారీగా స్పష్టంగా పెరుగుతుందా? మీరు ఒకే లైన్ చార్ట్ సృష్టించడం ద్వారా ఇది సులభంగా కనుగొనవచ్చు: ```python sns.relplot(x="year", y="priceperlb", kind="line", data=honey); ``` జవాబు: అవును, 2003 సంవత్సరానికి చుట్టూ కొన్ని తప్పులతో: ![line chart 1](../../../../translated_images/te/line1.f36eb465229a3b1f.webp) ✅ Seaborn ఒకే లైన్ చుట్టూ డేటాను సమీకరించడంతో, "ప్రతి x విలువ వద్ద బహుళ కొలతలను సగటు మరియు సగటు చుట్టూ 95% విశ్వాస అంతరాన్ని ప్లాట్ చేస్తుంది". [మూలం](https://seaborn.pydata.org/tutorial/relational.html). ఈ సమయం తీసుకునే ప్రవర్తనను `ci=None` జోడించడం ద్వారా నిలిపివేయవచ్చు. ప్రశ్న: 2003లో తేనె సరఫరాలో కూడా పెరుగుదల కనిపిస్తుందా? సంవత్సరాల వారీగా మొత్తం ఉత్పత్తిని చూస్తే? ```python sns.relplot(x="year", y="totalprod", kind="line", data=honey); ``` ![line chart 2](../../../../translated_images/te/line2.a5b3493dc01058af.webp) జవాబు: అంతగా కాదు. మొత్తం ఉత్పత్తిని చూస్తే, ఆ ప్రత్యేక సంవత్సరంలో పెరిగినట్లు కనిపిస్తుంది, అయితే సాధారణంగా ఈ సంవత్సరాలలో తేనె ఉత్పత్తి తగ్గుతోంది. ప్రశ్న: ఆ సందర్భంలో, 2003లో తేనె ధర పెరుగుదలకు కారణం ఏమిటి? దీన్ని కనుగొనడానికి, మీరు ఫేసెట్ గ్రిడ్ ను పరిశీలించవచ్చు. ## ఫేసెట్ గ్రిడ్లు ఫేసెట్ గ్రిడ్లు మీ డేటాసెట్ యొక్క ఒక ఫేసెట్ తీసుకుంటాయి (మా సందర్భంలో, మీరు 'సంవత్సరం' ఎంచుకుని చాలా ఫేసెట్లు ఉత్పత్తి కాకుండా చేయవచ్చు). Seaborn ఆ ఫేసెట్ల కోసం మీ ఎంచుకున్న x మరియు y కోఆర్డినేట్లతో ప్రతి ఫేసెట్ కోసం ప్లాట్ తయారు చేస్తుంది, ఇది సులభమైన దృశ్య తులన కోసం. 2003 ఈ రకమైన తులనలో ప్రత్యేకంగా కనిపిస్తుందా? [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" ) ``` ఈ దృశ్యీకరణలో, మీరు సంవత్సరాల వారీగా కాలనీకి ఉత్పత్తి మరియు కాలనీల సంఖ్యను పక్కపక్కనే 3 కాలమ్స్ లో ర్యాప్ సెట్ తో పోల్చవచ్చు: ![facet grid](../../../../translated_images/te/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/te/dual-line.a4c28ce659603fab.webp) 2003 సంవత్సరానికి చుట్టూ ఏదీ ప్రత్యేకంగా కనిపించకపోయినా, ఈ పాఠాన్ని కొంత సంతోషకరమైన నోటుతో ముగించడానికి ఇది సహాయపడుతుంది: మొత్తం కాలనీల సంఖ్య తగ్గుతున్నప్పటికీ, వారి ఉత్పత్తి తగ్గుతున్నా కాలనీల సంఖ్య స్థిరపడుతోంది. పోరు, తేనెలు, పోరు! 🐝❤️ ## 🚀 సవాలు ఈ పాఠంలో, మీరు స్కాటర్ ప్లాట్లు మరియు లైన్ గ్రిడ్లు, ఫేసెట్ గ్రిడ్లు వంటి ఇతర ఉపయోగాల గురించి కొంత తెలుసుకున్నారు. మీరు ఈ పాఠాల ముందు ఉపయోగించిన వేరే డేటాసెట్ ఉపయోగించి ఫేసెట్ గ్రిడ్ సృష్టించడానికి సవాలు చేయండి. అవి సృష్టించడానికి ఎంత సమయం పడుతుందో గమనించండి మరియు ఈ సాంకేతికతలతో మీరు ఎంత గ్రిడ్లు డ్రా చేయాలో జాగ్రత్తగా ఉండాల్సిన అవసరం గురించి గమనించండి. ## [పోస్ట్-లెక్చర్ క్విజ్](https://ff-quizzes.netlify.app/en/ds/quiz/23) ## సమీక్ష & స్వీయ అధ్యయనం లైన్ ప్లాట్లు సులభంగా లేదా చాలా సంక్లిష్టంగా ఉండవచ్చు. మీరు వాటిని ఎలా నిర్మించవచ్చో [Seaborn డాక్యుమెంటేషన్](https://seaborn.pydata.org/generated/seaborn.lineplot.html) లో కొంత చదవండి. ఈ పాఠంలో మీరు నిర్మించిన లైన్ చార్ట్లను డాక్స్ లో సూచించిన ఇతర పద్ధతులతో మెరుగుపరచడానికి ప్రయత్నించండి. ## అసైన్‌మెంట్ [తేనెగుళ్లలోకి డైవ్ చేయండి](assignment.md) --- **అస్పష్టత**: ఈ పత్రాన్ని AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో పొరపాట్లు లేదా తప్పిదాలు ఉండవచ్చు. అసలు పత్రం దాని స్వదేశీ భాషలోనే అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకంలో ఏర్పడిన ఏవైనా అపార్థాలు లేదా తప్పుదారుల కోసం మేము బాధ్యత వహించము.