V současnosti už nejcennějším zdrojem světa není ropa, ale data. Vizualizace se stává důležitějším nástrojem pro pochopení miliardy řádků dat. Převedením dat do grafické reprezentace, která se snadno interpretuje, vizualizace dat pomáhá při vyprávění dat tím, že zvýrazní relevantní informace, vzory a odlehlé hodnoty. Data a grafika však musí spolupracovat: Je to umění integrovat skvělou analýzu se skvělým vyprávěním. V tomto příspěvku na blogu vám ukážeme „Sea Born“, jeden z nejznámějších vizualizačních nástrojů napsaných v Pythonu.
Vizualizační nástroje
K vizualizaci trendů, vzorců, odlehlých hodnot a vztahů mezi proměnnými používáme vizualizační nástroje. Je to velmi žádaná dovednost, zejména pro kariéru v oblasti datové vědy.
Seaborn
Seaborn je knihovna Python pro vizualizaci dat založená namatplotlib. Poskytuje rozhraní na vysoké úrovni pro kreslení atraktivní a informativní statistické grafiky.
Funkce vykreslování Seaborn:
V seaborn máme 3 kategorie pozemků
-
Kategorické zápletky.
-
Distribuční pozemky.
-
Vztahové zápletky.
Kategorické zápletky
K vizualizaci tendencí kategoriální proměnné nebo k vizualizaci vztahu mezi dvěma proměnnými s alespoň jednou kategoriální používáme kategoriální vykreslovací funkce seaborn.
Počítat spiknutí:
- Zobrazuje počty pozorování každé kategorie z kategoriální proměnné. Jednoduše spočítáme počet pozorování každé kategorie proměnné
seaborn.catplot(kind = 'count',
data = dataset,
x = 'variable')
Barový pozemek:
-
Představuje odhad tendence spojité proměnné s výškou obdélníku pro každou kategorii kategoriální proměnné. Funkce vykreslování tedy bere jako vstup dvě proměnné, jednu spojitou a jednu kategorickou. Pro každou kategorii z proměnné_1 vypočítáme tendenci proměnné_2.
-
Tendence může být průměr, rozptyl nebo můžete předat nějakou vlastní funkci…
seaborn.catplot(kind = 'bar',**data = dataset,**
x = 'variable_1',**y = 'variable_2',**
estimator = np.mean)**
Plán pásu:
- Pásový graf je jedním z nejjednodušších a nejpřímějších grafů ve vizualizaci dat, jednoduše nakreslíme body, které představují hodnoty spojité proměnné. Pro každou kategorii proměnné 1 nakreslíme hodnoty proměnné 2.
seaborn.catplot(kind = 'strip',
data = dataset,
x = 'variable_1',
y = 'variable_2',
jitter = 0.15)
Zápletka Swarm:
-
Swarm plot je tak podobný strip plotu, protože má přesně stejnou funkcionalitu. Jediný rozdíl je v tom, jak zobrazuje body. Zatímco v pruhovém grafu se mohou datové body překrývat, protože jsou náhodně umístěny na ose x, v rojovém grafu zajistíme, že se body nebudou překrývat tím, že je naskládáme na sebe.
-
Nevýhodou je, že pokud máme hodně datových bodů, nebylo by možné je nepřekrývat, takže algoritmus některé datové body vymaže, aby se nepřekrývaly.
seaborn.catplot(kind = 'swarm',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Krabicová zápletka:
-
Krabicový graf se používá k reprezentaci distribuce spojité proměnné pro každou kategorii kategoriální proměnné. I když je to docela jednoduché, přináší spoustu informací:
-
Hodnoty kvartilů:
Rámeček má uvnitř vodorovnou čáru, která představuje medián. Vodorovná čára nahoře jsou horní kvartily, ta pod ní jsou dolní kvartily.
- Odlehlé hodnoty:
Všimněte si, že jsou některé body mimo rámeček, tyto body představují odlehlé hodnoty
seaborn.catplot(kind = 'box',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Houslová zápletka:
Místo vykreslování distribučního boxu vykreslí houslový plot skutečné rozložení spojité proměnné pro každou kategorii kategoriální proměnné pomocí KDE ( Kernel Density Estimation )
seaborn.catplot(kind = 'violin',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Distribuční grafy:
K vizualizaci distribuce spojitých proměnných používáme distribuční vykreslovací funkce seaborn.
Historie:
Hist graf představuje rozložení spojitých proměnných pomocí binů.
seaborn.distplot(kind = 'hist',
data = dataset,
x = 'variable',
bins = 20)
Zápletka KDE:
Kde graf představuje skutečnou distribuci dat pomocí odhadu hustoty jádra.
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable')
Může být také použit k reprezentaci bivariačního rozdělení dvou spojitých proměnných.
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Zápletka ECDF:
ECDF graf představuje empirickou kumulativní distribuci spojité proměnné.
seaborn.distplot(kind = 'ecdf',
data = dataset,
x = 'variable')
Vztahové zápletky:
K vizualizaci vztahu mezi spojitými proměnnými používáme relační vykreslovací funkce seaborn.
Bodový diagram:
- Ukazuje vztah mezi dvěma spojitými proměnnými jednoduchým vynesením všech datových bodů.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Čárová zápletka:
- Představuje vztah mezi proměnnými jako spojitou funkci.
seaborn.relplot(kind = 'line',
data = dataset,
x = 'variable_1',
y = 'variable_2')
Více funkcí:
Možná jste si všimli, že ve všech vykreslovacích funkcích používáme maximálně dvě proměnné na graf, ale co když chceme do naší vizualizace zavést více proměnných? Naštěstí se o to postaral Seaborn:
Odstín:
- Pomocí odstínu můžeme zavést 3. proměnnou, která je kategorická pro naši vizualizaci pomocí barevného kódování, to znamená, že datové body, které patří do stejné kategorie této 3. proměnné, budou mít stejnou barvu.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3')
Velikost:
- Velikost je podobná odstínu, ale místo kódování barev používá kódování velikosti. To znamená, že datové body, které patří do stejné kategorie 3. proměnné, budou mít stejnou jedinečnou velikost. Různé velikosti znamenají různé kategorie.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
size = 'variable_3',
sizes = [50, 100])
Styl:
- V podstatě to samé jako odstín a velikost, to znamená, že datové body, které patří do stejné kategorie 3. proměnné, budou mít stejný jedinečný styl. Bodový styl může být tečka, hvězda, křížek, trojúhelník, … říkáme jim značky.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
style = 'variable_3',
markers = ['X', '*'])
Můžeme také zavést novou kategoriální proměnnou pomocí násobných grafů, každý graf patří do kategorie z kategoriální proměnné:
Col:
Vytvoří mnoho obrazců vodorovně s ohledem na kategorie 3. proměnné.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
col = 'variable_3')
Řádek:
Vytvoří mnoho obrazců vertikálně s ohledem na kategorie 3. proměnné.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
row = 'variable_3')
Můžeme také použít odstín a velikost ve stejném grafu, abychom reprezentovali 4 proměnné, nebo dokonce odstín a styl a barvu, abychom použili 5 proměnných ve stejném grafu! Můžeme použít až 7 proměnných (proměnná 1, proměnná 2, odstín, velikost, styl, sloupec, řada) ve stejném grafu, ale poskytne nám to velmi nabitý graf, který je tak chaotický a extrémně obtížně interpretovatelný, někdy ne. informativní vůbec.
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3',
size = 'variable_4')
Závěr:
V tomto příspěvku jsme se dozvěděli o seaborn, jeho 3 kategoriích vykreslovacích funkcí: kategorické, distribuční a relační grafy a vysvětlili jsme každou vykreslovací funkci pro každou kategorii, spolu s kódem pythonu.
Podívejte se na náš Data Science Bootcamp, kde se dozvíte více o tomto tématu!