Az előző oktatóanyagban megtanultuk, miért fontos az adatvizualizáció, és hogyan hozhatunk létre diagramokat a matplotlib segítségével. Ebben az oktatóanyagban egy másik Seaborn nevű adatvizualizációs könyvtárról fogunk megismerkedni, amely a matplotlibre épül. De miért van szükségünk seabornra, ha van matplotlibünk? A seaborn használatával olyan parcellákat készíthet, amelyek vizuálisan tetszetősek, és nem csak a seaborn olyan parcellákról ismert, amelyek nem szerepelnek a matplotlibben, ami igen hasznos lehet az adatelemzésben.
Seaborn telepítése
Más könyvtárakkal ellentétben, amelyeken eddig dolgoztunk, a seaborn nincs előre telepítve az anacondával, de ne aggódjon, telepíthetjük conda vagy pip használatával is.
conda install -c anaconda seaborn #Install using conda pip install seaborn # Install using pip
Seaborn és adatkészlet importálása
A tengeri bort hagyományosan sns-ként importálják, miért kérdezed? Na, nekem is ez volt a kérdésem! Úgy értem, hogy az sns nem a seaborn mozaikszó, akárhogyan is látja. Kiderült, hogy ez valójában egy bennfentes vicc. Erről bővebben itt olvashat.
Ebben az oktatóanyagban a tanulók teljesítményadatait használjuk a Kaggle-en. Most, hogy minden törlődött, kezdjük el az adatkészlet és a könyvtárak importálását.
import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt sns.set_style('darkgrid') df = pd.read_csv('data.csv') df.head()
De mire használható ez a set_style()? értsük meg.
Telekstílusok a Seabornban
A seaborn használatával ténylegesen beállíthatja, hogy a telek hogyan jelenjen meg. Ezeket a stílusokat az sns.set_style() segítségével állíthatja be. Nagyon szeretem a darkgridstílust, ezért hadd mutassam meg, hogyan kell beállítani.
sns.set_style('darkgrid')
A darkgrid mellett más stílusok is használhatók, például: -
- sötét rács
- fehérrács
- sötét
- fehér
- kullancsok
Most, hogy mindent beállítottunk, kezdjük a tervkészítést!
(adsbygoogle = window.adsbygoogle || []).push({});
Tervezés Seabornban
sns.scatterplot()
Ezzel szóródási diagramokat készítünk, adatokat tudunk átadni az x és az y tengelyhez, és ezekhez szóródási diagramot készít.
sns.scatterplot(x = df['math score'], y = df['reading score']) plt.show()
A seaborn-ban valójában átadhatjuk az adatkeretünket adatargumentumként, majd csak címkéket adunk át x-nek és y-nek, lássuk, hogyan.
plt.figure(figsize = (9,6)) sns.scatterplot(x = 'math score', y = 'reading score',data = df) plt.show()
Mivel a Seaborn a matplotlib tetejére épül, használhatjuk a plt.show()-t, akárcsak a matplotlib-ben, valójában a matplotlib használatával testreszabhatjuk a seaborn plot-t. Most egy kicsit unalmas a cselekményünk, szabjuk egy kicsit testre!
plt.figure(figsize = (9,6)) sns.scatterplot(x = 'math score', y = 'reading score', hue = 'gender', data = df, alpha = 0.8 ) plt.show()
Most lássuk, mi történt. Egy szóródási diagramot ábrázoltunk a „matematikai pontszám” és az „olvasási pontszám” között, alfa = 0,8-at állítottunk be a pontok átlátszatlanságának meghatározásához, és a színárnyalatot „nem”-ként adtuk át, a színt pedig a megfelelő nemnek. . Például a bal alsó pont kék színű, ami azt jelenti, hogy az adatkeretben a pontban a nő neme szerepel.
sns.countplot()
Ez létrehoz egy gyakorisági diagramot, amely a nemet mondja meg. a megfelelő elem előfordulása az oszlopban.
plt.figure(figsize = (9,6)) sns.countplot(x = 'race/ethnicity', data = df ) plt.show()
(adsbygoogle = window.adsbygoogle || []).push({});
sns.displot()
Ez létrehoz egy hisztogramot a megfelelő eloszláshoz. Alapértelmezés szerint a terjesztés KDE-jét jeleníti meg, amelyet a kde = False beállításával kapcsolhat ki.
plt.figure(figsize = (9,6)) sns.displot(x = df['math score'], kde = False) plt.show()
sns.kdeplot()
Ez létrehoz egy Kernel Density Estimate (kernelsűrűség becslés) vagy KDE diagramot a disztribúcióról. A KDE-ről itt tájékozódhat.
plt.figure(figsize = (9,6)) sns.kdeplot(x = df['math score']) plt.show()
sns.regplot()
Ez létrehoz egy szóródási diagramot, amely egy regressziós egyenest tartalmaz az adatokhoz. A regressziós egyenesekről a következő cikkben fogunk tanulni, de most tekintsd úgy, mint egy egyenest, amely megmondja a 2 pont közötti kapcsolatot.
plt.figure(figsize = (9,6)) sns.regplot(x = df['math score'], y = df['reading score'], scatter_kws = {'color':'pink'}, line_kws = {'color':'red'} ) plt.show()
A scatter_kws és line_kws segítségével karakterisztikákat állíthatunk be a diagram vonalaihoz és pontjaihoz.
sns.lmplot()
Ez majdnem ugyanaz, mint a regplot, de létrehozhat egy regressziós egyenest az összes színárnyalatként beállított oszlopkategóriához.
sns.lmplot(x = 'math score', y = 'reading score', hue = 'gender', data = df ) plt.show()
sns.pairplot()
Ez ábrázolja a páronkénti kétváltozós eloszlásokat egy adatkészletben. A pairplot() csak numerikus oszlopoknál működik. A részhalmazokat olyan oszlopokkal kell átadnia, amelyek között meg szeretné jeleníteni az eloszlást.
sns.pairplot(df[['math score', 'reading score', 'writing score']] ) plt.show()
sns.jointplot()
Ez az egy- és kétváltozós eloszlást is ábrázolja 2 oszlop között.
sns.jointplot(x = 'math score', y = 'reading score', data = df ) plt.show()
Próbáljunk meg színárnyalatot hozzáadni, hogy meglássuk, mi történik.
sns.jointplot(x = 'math score', y = 'reading score', hue = 'gender', data = df ) plt.show()
sns.boxplot()
Létrehoz egy boxplotot, amely 5 számból álló összefoglalót ad az eloszlásról. Több dobozrajzot is létrehozhat. A Boxplotok a kiugró értékeket is megjelenítik az adatkészletben.
Egyetlen folyamatos oszlophoz
sns.boxplot(x = 'math score', data = df ) plt.show()
Az adatkészlet összes numerikus oszlopához
sns.boxplot(data = df) plt.show()
sns.swarmplot()
Ez egy kategorikus szórást ábrázol nem átfedő pontokkal. A raj cselekmény önmagában is megrajzolható, de jól kiegészíti a doboz vagy hegedű cselekményét is.
plt.figure(figsize = (12,8)) sns.swarmplot(x = 'race/ethnicity', y = 'math score', data = df, alpha = 0.8 ) plt.show()
sns.heatmap()
Az adatok hőtérképét ábrázolja. Leggyakrabban korrelációs hőtérképek létrehozására használják. annot = True a cella értékének megjelenítésére szolgál.
sns.heatmap(df.corr(), annot = True, cmap = 'inferno') plt.show()
Színes paletták Seabornban
A Seaborn lehetővé teszi egyedi színpaletták beállítását. Egyszerűen létrehozhatunk egy rendezett Python-listát a színes hexadecimális értékekből.
plt.figure(figsize = (12,8)) colors = [ '#F8D030', '#E0C068', '#EE99AC', '#C03028', '#F85888' ] sns.stripplot(x = 'race/ethnicity', y = 'math score', data = df, palette = colors ) plt.show()
A sávos parcellák olyanok, mint a rajterületek, de átfedő pontokkal.
Gratulálunk! Most már képes telkeket létrehozni a tengerben. Ezeket a diagramokat használhatja az adatokba való betekintésre. Számos egyéb cselekmény is felfedezhető itt, de most már tudja, hogyan kell felvázolni a fontosakat.