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/da/3-Data-Visualization/12-visualization-relationships
leestott 5c6168e354
🌐 Update translations via Co-op Translator
2 weeks ago
..
solution 🌐 Update translations via Co-op Translator 3 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 3 weeks ago

README.md

Visualisering af relationer: Alt om honning 🍯

 Sketchnote af (@sketchthedocs)
Visualisering af relationer - Sketchnote af @nitya

Med fokus på naturen i vores forskning, lad os udforske interessante visualiseringer, der viser relationerne mellem forskellige typer honning, baseret på et datasæt fra United States Department of Agriculture.

Dette datasæt med omkring 600 poster viser honningproduktion i mange amerikanske stater. For eksempel kan du se på antallet af kolonier, udbytte pr. koloni, den samlede produktion, lagre, pris pr. pund og værdien af den producerede honning i en given stat fra 1998-2012, med én række pr. år for hver stat.

Det kunne være interessant at visualisere forholdet mellem en stats produktion pr. år og for eksempel prisen på honning i den stat. Alternativt kunne du visualisere forholdet mellem staters honningudbytte pr. koloni. Denne tidsperiode dækker også den ødelæggende 'CCD' eller 'Colony Collapse Disorder', som først blev observeret i 2006 (http://npic.orst.edu/envir/ccd.html), hvilket gør det til et tankevækkende datasæt at studere. 🐝

Quiz før lektionen

I denne lektion kan du bruge Seaborn, som du tidligere har arbejdet med, som et godt bibliotek til at visualisere relationer mellem variabler. Især interessant er brugen af Seaborns relplot-funktion, der gør det muligt at lave scatterplots og linjediagrammer for hurtigt at visualisere 'statistiske relationer', hvilket giver dataforskeren en bedre forståelse af, hvordan variabler relaterer til hinanden.

Scatterplots

Brug et scatterplot til at vise, hvordan prisen på honning har udviklet sig år for år i hver stat. Seaborn, ved brug af relplot, grupperer praktisk statens data og viser datapunkter for både kategoriske og numeriske data.

Lad os starte med at importere dataene og Seaborn:

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

Du bemærker, at honningdataene har flere interessante kolonner, herunder år og pris pr. pund. Lad os udforske disse data, grupperet efter amerikanske stater:

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

Lav et grundlæggende scatterplot for at vise forholdet mellem prisen pr. pund honning og dens oprindelsesstat. Gør y-aksen høj nok til at vise alle stater:

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

scatterplot 1

Vis nu de samme data med en honningfarveskala for at vise, hvordan prisen udvikler sig over årene. Dette kan gøres ved at tilføje en 'hue'-parameter for at vise ændringen år for år:

Lær mere om de farvepaletter, du kan bruge i Seaborn - prøv en smuk regnbuefarveskala!

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

scatterplot 2

Med denne farveskalaændring kan du tydeligt se en stærk progression over årene i forhold til prisen på honning pr. pund. Hvis du ser på et eksempel i datasættet for at verificere (vælg for eksempel Arizona), kan du se et mønster af prisstigninger år for år med få undtagelser:

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

En anden måde at visualisere denne progression på er at bruge størrelse i stedet for farve. For farveblinde brugere kan dette være en bedre løsning. Rediger din visualisering, så prisstigningen vises ved en stigning i prikstørrelse:

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

Du kan se, at prikkerne gradvist bliver større.

scatterplot 3

Er dette et simpelt tilfælde af udbud og efterspørgsel? På grund af faktorer som klimaforandringer og kolonikollaps, er der mindre honning til rådighed år for år, og derfor stiger prisen?

For at finde en sammenhæng mellem nogle af variablerne i dette datasæt, lad os udforske nogle linjediagrammer.

Linjediagrammer

Spørgsmål: Er der en tydelig stigning i prisen på honning pr. pund år for år? Dette kan nemmest opdages ved at lave et enkelt linjediagram:

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

Svar: Ja, med nogle undtagelser omkring året 2003:

line chart 1

Fordi Seaborn aggregerer data omkring én linje, viser den "de multiple målinger ved hver x-værdi ved at plotte gennemsnittet og det 95% konfidensinterval omkring gennemsnittet". Kilde. Denne tidskrævende adfærd kan deaktiveres ved at tilføje ci=None.

Spørgsmål: Nå, men i 2003, kan vi også se en stigning i honningforsyningen? Hvad hvis du ser på den samlede produktion år for år?

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

line chart 2

Svar: Ikke rigtigt. Hvis du ser på den samlede produktion, ser det faktisk ud til at være steget i det pågældende år, selvom mængden af produceret honning generelt er faldende i disse år.

Spørgsmål: I så fald, hvad kunne have forårsaget stigningen i prisen på honning omkring 2003?

For at finde ud af dette kan du udforske et facet grid.

Facet grids

Facet grids tager én facet af dit datasæt (i vores tilfælde kan du vælge 'år' for at undgå at få for mange facetter). Seaborn kan derefter lave et plot for hver af disse facetter af dine valgte x- og y-koordinater for lettere visuel sammenligning. Skiller 2003 sig ud i denne type sammenligning?

Lav et facet grid ved at fortsætte med at bruge relplot som anbefalet af Seaborns dokumentation.

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

I denne visualisering kan du sammenligne udbytte pr. koloni og antal kolonier år for år, side om side med en wrap sat til 3 for kolonnerne:

facet grid

For dette datasæt skiller intet sig særligt ud med hensyn til antallet af kolonier og deres udbytte, år for år og stat for stat. Er der en anden måde at finde en sammenhæng mellem disse to variabler?

Dual-line plots

Prøv et multiline-plot ved at overlejre to linjediagrammer oven på hinanden, brug Seaborns 'despine' til at fjerne deres øverste og højre akser, og brug ax.twinx afledt fra Matplotlib. Twinx gør det muligt for et diagram at dele x-aksen og vise to y-akser. Så vis udbytte pr. koloni og antal kolonier, overlejret:

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

Selvom intet springer i øjnene omkring året 2003, giver det os mulighed for at afslutte denne lektion på en lidt gladere note: Selvom antallet af kolonier generelt er faldende, stabiliserer antallet sig, selvom deres udbytte pr. koloni falder.

Kom så, bier, kom så!

🐝❤️

🚀 Udfordring

I denne lektion lærte du lidt mere om andre anvendelser af scatterplots og linjegrids, herunder facet grids. Udfordr dig selv til at lave et facet grid ved hjælp af et andet datasæt, måske et du brugte tidligere i disse lektioner. Bemærk, hvor lang tid de tager at lave, og hvordan du skal være forsigtig med, hvor mange grids du skal tegne ved hjælp af disse teknikker.

Quiz efter lektionen

Gennemgang & Selvstudie

Linjediagrammer kan være simple eller ret komplekse. Læs lidt i Seaborns dokumentation om de forskellige måder, du kan bygge dem på. Prøv at forbedre de linjediagrammer, du byggede i denne lektion, med andre metoder, der er nævnt i dokumentationen.

Opgave

Dyk ned i bikuben


Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.