# Visualisera relationer: Allt om honung 🍯 |![ Sketchnote av [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)| |:---:| |Visualisera relationer - _Sketchnote av [@nitya](https://twitter.com/nitya)_ | FortsĂ€tt med naturfokuset i vĂ„r forskning och upptĂ€ck intressanta visualiseringar för att visa relationerna mellan olika typer av honung, baserat pĂ„ ett dataset frĂ„n [United States Department of Agriculture](https://www.nass.usda.gov/About_NASS/index.php). Detta dataset, som innehĂ„ller cirka 600 poster, visar honungsproduktionen i mĂ„nga amerikanska delstater. Du kan till exempel undersöka antalet bisamhĂ€llen, avkastning per samhĂ€lle, total produktion, lager, pris per pound och vĂ€rdet av den producerade honungen i en viss delstat frĂ„n 1998-2012, med en rad per Ă„r för varje delstat. Det kan vara intressant att visualisera relationen mellan en viss delstats produktion per Ă„r och till exempel priset pĂ„ honung i den delstaten. Alternativt kan du visualisera relationen mellan delstaternas honungsavkastning per samhĂ€lle. Denna tidsperiod tĂ€cker den förödande 'CCD' eller 'Colony Collapse Disorder', som först observerades 2006 (http://npic.orst.edu/envir/ccd.html), vilket gör detta dataset sĂ€rskilt tankevĂ€ckande att studera. 🐝 ## [Quiz före lektionen](https://ff-quizzes.netlify.app/en/ds/quiz/22) I den hĂ€r lektionen kan du anvĂ€nda Seaborn, som du har anvĂ€nt tidigare, som ett bra bibliotek för att visualisera relationer mellan variabler. SĂ€rskilt intressant Ă€r anvĂ€ndningen av Seaborns `relplot`-funktion, som möjliggör spridningsdiagram och linjediagram för att snabbt visualisera '[statistiska relationer](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)', vilket hjĂ€lper dataforskaren att bĂ€ttre förstĂ„ hur variabler relaterar till varandra. ## Spridningsdiagram AnvĂ€nd ett spridningsdiagram för att visa hur priset pĂ„ honung har utvecklats Ă„r för Ă„r per delstat. Seaborn, med hjĂ€lp av `relplot`, grupperar bekvĂ€mt delstatsdata och visar datapunkter för bĂ„de kategoriska och numeriska data. LĂ„t oss börja med att importera data och Seaborn: ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns honey = pd.read_csv('../../data/honey.csv') honey.head() ``` Du mĂ€rker att honungsdatan har flera intressanta kolumner, inklusive Ă„r och pris per pound. LĂ„t oss utforska denna data, grupperad efter amerikansk delstat: | 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 | Skapa ett grundlĂ€ggande spridningsdiagram för att visa relationen mellan priset per pound honung och dess ursprungsdelstat i USA. Gör `y`-axeln tillrĂ€ckligt hög för att visa alla delstater: ```python sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); ``` ![spridningsdiagram 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.sv.png) Visa nu samma data med ett honungsfĂ€rgschema för att visa hur priset utvecklas över Ă„ren. Du kan göra detta genom att lĂ€gga till en 'hue'-parameter för att visa förĂ€ndringen Ă„r för Ă„r: > ✅ LĂ€s mer om de [fĂ€rgpaletter du kan anvĂ€nda i Seaborn](https://seaborn.pydata.org/tutorial/color_palettes.html) - prova ett vackert regnbĂ„gsfĂ€rgschema! ```python sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); ``` ![spridningsdiagram 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.sv.png) Med denna fĂ€rgschemaförĂ€ndring kan du tydligt se en stark progression över Ă„ren nĂ€r det gĂ€ller priset pĂ„ honung per pound. Om du tittar pĂ„ ett urval av data för att verifiera (vĂ€lj en viss delstat, till exempel Arizona) kan du se ett mönster av prisökningar Ă„r för Ă„r, med fĂ„ undantag: | 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 | Ett annat sĂ€tt att visualisera denna progression Ă€r att anvĂ€nda storlek istĂ€llet för fĂ€rg. För fĂ€rgblinda anvĂ€ndare kan detta vara ett bĂ€ttre alternativ. Ändra din visualisering för att visa en ökning av priset genom en ökning av punktens omkrets: ```python sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); ``` Du kan se att storleken pĂ„ punkterna gradvis ökar. ![spridningsdiagram 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.sv.png) Är detta ett enkelt fall av utbud och efterfrĂ„gan? PĂ„ grund av faktorer som klimatförĂ€ndringar och kollaps av bisamhĂ€llen, finns det mindre honung tillgĂ€nglig för köp Ă„r för Ă„r, och dĂ€rmed ökar priset? För att upptĂ€cka en korrelation mellan nĂ„gra av variablerna i detta dataset, lĂ„t oss utforska nĂ„gra linjediagram. ## Linjediagram FrĂ„ga: Finns det en tydlig ökning av priset pĂ„ honung per pound Ă„r för Ă„r? Du kan enklast upptĂ€cka detta genom att skapa ett enda linjediagram: ```python sns.relplot(x="year", y="priceperlb", kind="line", data=honey); ``` Svar: Ja, med vissa undantag runt Ă„r 2003: ![linjediagram 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.sv.png) ✅ Eftersom Seaborn aggregerar data runt en linje, visar den "de flera mĂ€tningarna vid varje x-vĂ€rde genom att plotta medelvĂ€rdet och 95 % konfidensintervallet runt medelvĂ€rdet". [KĂ€lla](https://seaborn.pydata.org/tutorial/relational.html). Detta tidskrĂ€vande beteende kan inaktiveras genom att lĂ€gga till `ci=None`. FrĂ„ga: Kan vi ocksĂ„ se en topp i honungstillgĂ„ngen runt 2003? Vad hĂ€nder om du tittar pĂ„ den totala produktionen Ă„r för Ă„r? ```python sns.relplot(x="year", y="totalprod", kind="line", data=honey); ``` ![linjediagram 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.sv.png) Svar: Inte riktigt. Om du tittar pĂ„ den totala produktionen verkar den faktiskt ha ökat det Ă„ret, Ă€ven om mĂ€ngden producerad honung generellt sett minskar under dessa Ă„r. FrĂ„ga: I sĂ„ fall, vad kan ha orsakat prisökningen pĂ„ honung runt 2003? För att upptĂ€cka detta kan du utforska ett facet grid. ## Facet grids Facet grids tar en aspekt av ditt dataset (i vĂ„rt fall kan du vĂ€lja 'Ă„r' för att undvika att för mĂ„nga facetter skapas). Seaborn kan sedan skapa en plot för var och en av dessa facetter av dina valda x- och y-koordinater för enklare visuell jĂ€mförelse. StĂ„r 2003 ut i denna typ av jĂ€mförelse? Skapa ett facet grid genom att fortsĂ€tta anvĂ€nda `relplot` som rekommenderas av [Seaborns dokumentation](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid). ```python sns.relplot( data=honey, x="yieldpercol", y="numcol", col="year", col_wrap=3, kind="line" ) ``` I denna visualisering kan du jĂ€mföra avkastning per samhĂ€lle och antal samhĂ€llen Ă„r för Ă„r, sida vid sida med en wrap instĂ€lld pĂ„ 3 för kolumnerna: ![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.sv.png) För detta dataset framtrĂ€der inget sĂ€rskilt med avseende pĂ„ antalet samhĂ€llen och deras avkastning, Ă„r för Ă„r och delstat för delstat. Finns det ett annat sĂ€tt att hitta en korrelation mellan dessa tvĂ„ variabler? ## Dubbel-linjediagram Prova ett flerlindjediagram genom att lĂ€gga tvĂ„ linjediagram ovanpĂ„ varandra, anvĂ€nd Seaborns 'despine' för att ta bort deras övre och högra axlar, och anvĂ€nd `ax.twinx` [hĂ€rlett frĂ„n Matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx tillĂ„ter ett diagram att dela x-axeln och visa tvĂ„ y-axlar. Visa avkastning per samhĂ€lle och antal samhĂ€llen, överlagrade: ```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(); ``` ![överlagrade diagram](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.sv.png) Även om inget sĂ€rskilt framtrĂ€der runt Ă„r 2003, lĂ„ter det oss avsluta denna lektion pĂ„ en lite gladare not: Ă€ven om antalet samhĂ€llen totalt sett minskar, stabiliseras antalet samhĂ€llen Ă€ven om deras avkastning per samhĂ€lle minskar. Heja bina! đŸâ€ïž ## 🚀 Utmaning I den hĂ€r lektionen lĂ€rde du dig lite mer om andra anvĂ€ndningsomrĂ„den för spridningsdiagram och linjediagram, inklusive facet grids. Utmana dig sjĂ€lv att skapa ett facet grid med ett annat dataset, kanske ett du anvĂ€nt tidigare i dessa lektioner. Notera hur lĂ„ng tid det tar att skapa och hur du behöver vara försiktig med hur mĂ„nga grids du behöver rita med dessa tekniker. ## [Quiz efter lektionen](https://ff-quizzes.netlify.app/en/ds/quiz/23) ## Granskning & SjĂ€lvstudier Linjediagram kan vara enkla eller ganska komplexa. LĂ€s lite i [Seaborns dokumentation](https://seaborn.pydata.org/generated/seaborn.lineplot.html) om de olika sĂ€tten du kan bygga dem pĂ„. Försök att förbĂ€ttra de linjediagram du byggde i denna lektion med andra metoder som listas i dokumentationen. ## Uppgift [Dyk in i bikupan](assignment.md) --- **Ansvarsfriskrivning**: Detta dokument har översatts med hjĂ€lp av AI-översĂ€ttningstjĂ€nsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strĂ€var efter noggrannhet, bör du vara medveten om att automatiserade översĂ€ttningar kan innehĂ„lla fel eller felaktigheter. Det ursprungliga dokumentet pĂ„ dess originalsprĂ„k bör betraktas som den auktoritativa kĂ€llan. För kritisk information rekommenderas professionell mĂ€nsklig översĂ€ttning. Vi ansvarar inte för eventuella missförstĂ„nd eller feltolkningar som uppstĂ„r vid anvĂ€ndning av denna översĂ€ttning.