You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/sw/3-Data-Visualization/12-visualization-relationships
leestott 5c6168e354
🌐 Update translations via Co-op Translator
2 weeks ago
..
solution 🌐 Update translations via Co-op Translator 2 weeks ago
README.md 🌐 Update translations via Co-op Translator 2 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago
notebook.ipynb 🌐 Update translations via Co-op Translator 2 weeks ago

README.md

Kuonyesha Mahusiano: Yote Kuhusu Asali 🍯

 Sketchnote na (@sketchthedocs)
Kuonyesha Mahusiano - Sketchnote na @nitya

Tukiendelea na mtazamo wa asili katika utafiti wetu, hebu tujifunze njia za kuvutia za kuonyesha mahusiano kati ya aina mbalimbali za asali, kulingana na seti ya data iliyotolewa na Idara ya Kilimo ya Marekani.

Seti hii ya data yenye takriban vitu 600 inaonyesha uzalishaji wa asali katika majimbo mengi ya Marekani. Kwa mfano, unaweza kuangalia idadi ya makoloni, mavuno kwa kila koloni, uzalishaji wa jumla, akiba, bei kwa pauni, na thamani ya asali iliyozalishwa katika jimbo fulani kuanzia mwaka 1998-2012, na safu moja kwa kila mwaka kwa kila jimbo.

Itakuwa ya kuvutia kuonyesha mahusiano kati ya uzalishaji wa jimbo fulani kwa mwaka na, kwa mfano, bei ya asali katika jimbo hilo. Vinginevyo, unaweza kuonyesha mahusiano kati ya mavuno ya asali kwa kila koloni katika majimbo mbalimbali. Kipindi hiki cha miaka kinajumuisha tukio la kusikitisha la 'CCD' au 'Colony Collapse Disorder' lililoonekana kwa mara ya kwanza mwaka 2006 (http://npic.orst.edu/envir/ccd.html), kwa hivyo ni seti ya data yenye umuhimu wa kipekee wa kusoma. 🐝

Jaribio la kabla ya somo

Katika somo hili, unaweza kutumia Seaborn, ambayo umewahi kuitumia hapo awali, kama maktaba nzuri ya kuonyesha mahusiano kati ya vigezo. Jambo la kuvutia hasa ni matumizi ya kipengele cha relplot cha Seaborn ambacho huruhusu grafu za alama na grafu za mistari kuonyesha haraka 'mahusiano ya takwimu', ambayo humsaidia mtaalamu wa data kuelewa vyema jinsi vigezo vinavyohusiana.

Grafu za Alama

Tumia grafu ya alama kuonyesha jinsi bei ya asali imebadilika, mwaka hadi mwaka, kwa kila jimbo. Seaborn, kwa kutumia relplot, huweka data ya majimbo pamoja na kuonyesha alama za data kwa data ya kategoria na ya namba.

Hebu tuanze kwa kuingiza data na Seaborn:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
honey = pd.read_csv('../../data/honey.csv')
honey.head()

Unagundua kuwa data ya asali ina safu kadhaa za kuvutia, zikiwemo mwaka na bei kwa pauni. Hebu tuchunguze data hii, iliyopangwa kwa majimbo ya Marekani:

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

Unda grafu ya msingi ya alama kuonyesha mahusiano kati ya bei kwa pauni ya asali na jimbo la asili. Fanya mhimili wa y uwe mrefu vya kutosha kuonyesha majimbo yote:

sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5);

scatterplot 1

Sasa, onyesha data hiyo hiyo kwa mpangilio wa rangi ya asali ili kuonyesha jinsi bei inavyobadilika mwaka hadi mwaka. Unaweza kufanya hivi kwa kuongeza kipengele cha 'hue' kuonyesha mabadiliko, mwaka hadi mwaka:

Jifunze zaidi kuhusu paleti za rangi unazoweza kutumia katika Seaborn - jaribu mpangilio mzuri wa rangi za upinde wa mvua!

sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5);

scatterplot 2

Kwa mabadiliko haya ya mpangilio wa rangi, unaweza kuona wazi kuwa kuna mwelekeo wa ongezeko la bei kwa pauni ya asali mwaka hadi mwaka. Kwa kweli, ukichunguza seti ya sampuli katika data ili kuthibitisha (chagua jimbo fulani, Arizona kwa mfano) unaweza kuona mwelekeo wa ongezeko la bei mwaka hadi mwaka, isipokuwa kwa baadhi ya miaka:

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

Njia nyingine ya kuonyesha mwelekeo huu ni kutumia ukubwa badala ya rangi. Kwa watumiaji wenye matatizo ya kuona rangi, hii inaweza kuwa chaguo bora. Hariri grafu yako ili kuonyesha ongezeko la bei kwa ongezeko la mduara wa alama:

sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5);

Unaweza kuona ukubwa wa alama ukiongezeka hatua kwa hatua.

scatterplot 3

Je, hili ni suala rahisi la mahitaji na usambazaji? Kutokana na mambo kama mabadiliko ya hali ya hewa na kuporomoka kwa makoloni, je, kuna asali kidogo inayopatikana kwa ununuzi mwaka hadi mwaka, na hivyo bei kuongezeka?

Ili kugundua uhusiano kati ya baadhi ya vigezo katika seti hii ya data, hebu tuchunguze grafu za mistari.

Grafu za Mistari

Swali: Je, kuna ongezeko dhahiri la bei ya asali kwa pauni mwaka hadi mwaka? Unaweza kugundua hili kwa urahisi kwa kuunda grafu moja ya mstari:

sns.relplot(x="year", y="priceperlb", kind="line", data=honey);

Jibu: Ndiyo, isipokuwa kwa baadhi ya miaka kama 2003:

line chart 1

Kwa sababu Seaborn inakusanya data kuzunguka mstari mmoja, inaonyesha "vipimo vingi kwa kila thamani ya x kwa kuonyesha wastani na kipimo cha kujiamini cha 95% kuzunguka wastani". Chanzo. Tabia hii inayochukua muda inaweza kuzimwa kwa kuongeza ci=None.

Swali: Vema, mwaka 2003 tunaweza pia kuona ongezeko la usambazaji wa asali? Je, ukitazama uzalishaji wa jumla mwaka hadi mwaka?

sns.relplot(x="year", y="totalprod", kind="line", data=honey);

line chart 2

Jibu: Sio kweli. Ukitazama uzalishaji wa jumla, inaonekana kuwa uliongezeka katika mwaka huo, ingawa kwa ujumla uzalishaji wa asali unaonekana kupungua katika miaka hiyo.

Swali: Katika hali hiyo, ni nini kingeweza kusababisha ongezeko la bei ya asali karibu na mwaka 2003?

Ili kugundua hili, unaweza kuchunguza gridi ya vipengele.

Gridi ya Vipengele

Gridi ya vipengele huchukua kipengele kimoja cha seti yako ya data (katika hali yetu, unaweza kuchagua 'mwaka' ili kuepuka kuzalisha vipengele vingi sana). Seaborn inaweza kisha kutengeneza grafu kwa kila kipengele cha x na y unazochagua kwa kulinganisha kwa urahisi. Je, mwaka 2003 unajitokeza katika aina hii ya kulinganisha?

Unda gridi ya vipengele kwa kuendelea kutumia relplot kama inavyopendekezwa na hati za Seaborn.

sns.relplot(
    data=honey, 
    x="yieldpercol", y="numcol",
    col="year", 
    col_wrap=3,
    kind="line"
    )

Katika grafu hii, unaweza kulinganisha mavuno kwa kila koloni na idadi ya makoloni mwaka hadi mwaka, sambamba na mpangilio wa safu 3:

facet grid

Kwa seti hii ya data, hakuna kitu kinachojitokeza hasa kuhusu idadi ya makoloni na mavuno yao, mwaka hadi mwaka na jimbo hadi jimbo. Je, kuna njia tofauti ya kutazama uhusiano kati ya vigezo hivi viwili?

Grafu za Mistari Mbili

Jaribu grafu ya mistari mingi kwa kuweka grafu mbili za mistari juu ya kila mmoja, kwa kutumia 'despine' ya Seaborn kuondoa miiba ya juu na ya kulia, na kutumia ax.twinx iliyotokana na Matplotlib. Twinx huruhusu grafu kushiriki mhimili wa x na kuonyesha mihimili miwili ya y. Kwa hivyo, onyesha mavuno kwa kila koloni na idadi ya makoloni, juu ya kila mmoja:

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

Ingawa hakuna kitu kinachojitokeza kwa macho karibu na mwaka 2003, inaturuhusu kumaliza somo hili kwa maelezo ya furaha kidogo: ingawa kuna idadi inayopungua ya makoloni, idadi ya makoloni inastabilisha hata kama mavuno yao kwa kila koloni yanapungua.

Endeleeni nyuki, endeleeni!

🐝❤️

🚀 Changamoto

Katika somo hili, umejifunza zaidi kuhusu matumizi mengine ya grafu za alama na gridi za mistari, ikiwemo gridi za vipengele. Jipatie changamoto ya kuunda gridi ya vipengele kwa kutumia seti tofauti ya data, labda moja uliyoitumia kabla ya masomo haya. Angalia muda wanaochukua kuunda na jinsi unavyohitaji kuwa makini kuhusu idadi ya gridi unazohitaji kuchora kwa kutumia mbinu hizi.

Jaribio la baada ya somo

Mapitio na Kujisomea

Grafu za mistari zinaweza kuwa rahisi au ngumu sana. Fanya usomaji kidogo katika hati za Seaborn kuhusu njia mbalimbali unazoweza kuzitumia kuzijenga. Jaribu kuboresha grafu za mistari ulizojenga katika somo hili kwa kutumia mbinu nyingine zilizoorodheshwa katika hati.

Kazi

Chunguza mzinga wa nyuki


Kanusho:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, inashauriwa kutumia huduma ya tafsiri ya kitaalamu ya binadamu. Hatutawajibika kwa maelewano mabaya au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.