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.