|
|
1 month ago | |
|---|---|---|
| .. | ||
| solution | 1 month ago | |
| README.md | 1 month ago | |
| assignment.md | 1 month ago | |
| notebook.ipynb | 1 month ago | |
README.md
సంబంధాలను దృశ్యీకరించడం: తేనె గురించి అన్ని 🍯
![]() |
|---|
| సంబంధాలను దృశ్యీకరించడం - స్కెచ్ నోట్ @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()
మీరు గమనిస్తారు తేనె డేటాలో సంవత్సరము మరియు పౌండ్కు ధర వంటి కొన్ని ఆసక్తికరమైన కాలమ్స్ ఉన్నాయి. ఈ డేటాను యుఎస్ రాష్ట్రాల వారీగా సమూహీకరించి పరిశీలిద్దాం:
| 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 అక్షాన్ని పొడవుగా చేయండి:
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);
ఈ రంగు ప్యాలెట్ మార్పుతో, తేనె ధరలో సంవత్సరాల వారీగా స్పష్టమైన పెరుగుదల ఉందని మీరు చూడవచ్చు. నిజంగా, డేటాలో ఒక ఉదాహరణ రాష్ట్రం (ఉదాహరణకు అరిజోనా) తీసుకుని పరిశీలిస్తే, సంవత్సరాల వారీగా ధర పెరుగుదల ఒక నమూనా కనిపిస్తుంది, కొన్ని తప్పులతో:
| 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 |
రంగు బదులుగా పరిమాణం ఉపయోగించి ఈ పెరుగుదలని చూపించవచ్చు. రంగు దృష్టి లోపం ఉన్న వినియోగదారులకు ఇది మంచి ఎంపిక కావచ్చు. డాట్ వ్యాసార్థం పెరుగుదలతో ధర పెరుగుదలని చూపించడానికి మీ దృశ్యీకరణను సవరించండి:
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' ఉపయోగించి పై మరియు కుడి స్పైన్లను తీసివేసి, ax.twinx Matplotlib నుండి తీసుకుని మల్టిలైన్ ప్లాట్ ప్రయత్నించండి. 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 ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో పొరపాట్లు లేదా తప్పిదాలు ఉండవచ్చు. అసలు పత్రం దాని స్వదేశీ భాషలోనే అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకంలో ఏర్పడిన ఏవైనా అపార్థాలు లేదా తప్పుదారుల కోసం మేము బాధ్యత వహించము.







