I dag er verdens mest værdifulde ressource ikke længere olie, men data. Visualisering er ved at blive et vigtigere værktøj til at give mening ud af de milliarder af rækker af data. Ved at oversætte data til en grafisk repræsentation, der er nem at fortolke, hjælper datavisualisering med datahistoriefortællingen ved at fremhæve relevant information, mønstre og outliers. Dataene og grafikken skal dog arbejde sammen: Det er kunsten at integrere god analyse med god historiefortælling. I dette blogindlæg viser vi dig "Sea Born", et af de mest kendte visualiseringsværktøjer skrevet i Python.
Visualiseringsværktøjer
Vi bruger visualiseringsværktøjer til at visualisere trends, mønstre, outliers og forholdet mellem variabler. Det er en meget efterspurgt færdighed, især for en datavidenskabskarriere.
Søfødt
Seaborn er et Python-datavisualiseringsbibliotek baseret påmatplotlib. Det giver en grænseflade på højt niveau til at tegne attraktiv og informativ statistisk grafik.
Seaborn plotte funktioner:
I seaborn har vi 3 kategorier af grunde
-
Kategoriske plots.
-
Udlodningsgrunde.
-
Relationelle plots.
Kategoriske plots
Vi bruger Seaborns kategoriske plotningsfunktioner til at visualisere tendenserne for en kategorisk variabel eller til at visualisere forholdet mellem to variable med mindst én kategorisk variabel.
Tælle plot:
- Viser antallet af observationer af hver kategori fra den kategoriske variabel. Vi tæller simpelthen antallet af observationer af hver kategori af variablen
seaborn.catplot(kind = 'count',
data = dataset,
x = 'variable')
Bargrund:
-
Repræsenterer et estimat af tendensen for en kontinuert variabel med højden af rektangel for hver kategori af en kategorisk variabel. Så plottefunktionen tager to variable som input, en der er kontinuerlig og en der er kategorisk. For hver kategori fra variabel_1 beregner vi tendensen til variabel_2.
-
Tendensen kan være middelværdien, variansen, eller du kan bestå en brugerdefineret funktion...
seaborn.catplot(kind = 'bar',**data = dataset,**
x = 'variable_1',**y = 'variable_2',**
estimator = np.mean)**
Strip plot:
- Stripplot er et af de enkleste og mest ligetil plots i datavisualisering, vi tegner simpelthen punkter, der repræsenterer værdierne af en kontinuerlig variabel. For hver kategori af variabel 1 tegner vi værdierne for variabel 2.
seaborn.catplot(kind = 'strip',
data = dataset,
x = 'variable_1',
y = 'variable_2',
jitter = 0.15)
Sværm plot:
-
Swarm-plottet ligner så meget stripplottet, da det har nøjagtig samme funktionalitet. Den eneste forskel er, hvordan den viser pointene. Mens datapunkter er i stripplot, kan datapunkter overlappe, da de er tilfældigt placeret på x-aksen, i sværmplot sørger vi for, at punkter ikke overlapper hinanden ved at stable dem oven på hinanden.
-
Ulempen her er, at hvis vi har mange datapunkter, ville det være umuligt ikke at overlappe dem, så algoritmen vil slette nogle datapunkter for ikke at overlappe.
seaborn.catplot(kind = 'swarm',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Boks plot:
-
Boksplot bruges til at repræsentere fordelingen af en kontinuert variabel for hver kategori af en kategorisk variabel. Selvom det er ret simpelt, giver det en masse information:
-
Værdierne af kvartilerne:
Boksen har en vandret linje indeni, som repræsenterer medianen. Den vandrette linje over er de øverste kvartiler, den under den er de nederste kvartiler.
- Outliers:
Bemærk, at der er nogle punkter uden for boksen, disse punkter repræsenterer outliers
seaborn.catplot(kind = 'box',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Violin plot:
I stedet for at plotte distributionsboksen vil violinplot plotte den faktiske fordeling af den kontinuerlige variabel for hver kategori af den kategoriske variabel ved hjælp af KDE (Kernedensitetsestimation)
seaborn.catplot(kind = 'violin',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Distributionsgrunde:
Vi bruger søborns distributionsplotfunktioner til at visualisere fordelingen af kontinuerte variabler.
Hans plot:
Hist-plottet repræsenterer fordelingen af kontinuerte variabler ved brug af bins.
seaborn.distplot(kind = 'hist',
data = dataset,
x = 'variable',
bins = 20)
KDE plot:
Kde-plot repræsenterer den faktiske fordeling af dataene ved hjælp af kernedensitetsestimat.
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable')
Det kan også bruges til at repræsentere den bivariate fordeling af to kontinuerte variable.
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable_1',
y = 'variable_2')
ECDF plot:
ECDF-plot repræsenterer den empiriske kumulative fordeling af en kontinuert variabel.
seaborn.distplot(kind = 'ecdf',
data = dataset,
x = 'variable')
Relationelle grunde:
Vi bruger de relationelle plotningsfunktioner for søfødte til at visualisere forholdet mellem kontinuerte variable.
Spredningsplot:
- Det viser forholdet mellem to kontinuerte variable ved blot at plotte alle datapunkterne.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Linje plot:
- Repræsenterer forholdet mellem variable som en kontinuerlig funktion.
seaborn.relplot(kind = 'line',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Flere funktionaliteter:
Du har måske bemærket, at vi i alle plotningsfunktionerne har brugt maksimalt to variable pr. plot, men hvad nu hvis vi vil introducere flere variabler i vores visualisering? Heldigvis tog Seaborn sig af det:
Nuance:
- Ved at bruge hue kan vi introducere en 3. variabel, der er kategorisk for vores visualisering ved hjælp af farvekodning, det betyder, at de datapunkter, der tilhører samme kategori af denne 3. variabel, vil have samme farve.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3')
Størrelse:
- Størrelse svarer til nuance, men bruger størrelseskodning i stedet for farvekodning. Det betyder, at de datapunkter, der tilhører samme kategori af den 3. variabel, vil have samme unikke størrelse. Forskellige størrelser betyder forskellige kategorier.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
size = 'variable_3',
sizes = [50, 100])
Stil:
- Stort set det samme som Hue og Size. Det betyder, at de datapunkter, der tilhører den samme kategori af den 3. variabel, vil have den samme unikke stil. En punktstil kan være en prik, stjerne, kryds, trekant, … vi kalder dem markører.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
style = 'variable_3',
markers = ['X', '*'])
Vi kan også introducere en ny kategorisk variabel ved hjælp af multiple plots, hvert plot tilhører en kategori fra den kategoriske kategorivariabel:
Kol:
Vil skabe mange figurer vandret med hensyn til den 3. variabels kategorier.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
col = 'variable_3')
Række:
Vil skabe mange figurer lodret i forhold til den 3. variabels kategorier.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
row = 'variable_3')
Vi kan også bruge Hue og Size i det samme plot, til at repræsentere 4 variabler, eller endda Hue and Style og Col, for at bruge 5 variabler i det samme plot! Vi kan bruge op til 7 variable (variabel 1, variabel 2, Hue, Size, Style, Col, Row) i samme plot, men det vil give os et meget ladet plot, der er så rodet og ekstremt svært at fortolke, nogle gange ikke informativ overhovedet.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3',
size = 'variable_4')
Konklusion:
I dette indlæg lærte vi om seaborn, dets 3 kategorier af plottefunktioner: Kategoriske, Distributions- og Relationsplot, og vi forklarede hver plottefunktion for hver kategori, alt sammen med pythonkoden.
Tjek vores Data Science Bootcamp for at lære mere om dette emne!