Pairplot
Pair plot wordt gebruikt om een pairwise relatie tussen de numerieke variabelen in een dataset te visualiseren. Het lijkt sterk op een joint plot, maar is niet beperkt tot slechts twee variabelen. Een pair plot maakt namelijk een NxN
raster van Axes
objecten (meerdere subplots), waarbij N
het aantal numerieke variabelen is (numerieke kolommen in een DataFrame
).
Beschrijving van Pair Plot
In een pair plot deelt elke kolom dezelfde x-as variabele, en elke rij deelt dezelfde y-as variabele. De diagonaal toont histogrammen van individuele variabelen, terwijl de overige plots scatterplots weergeven.
Een Pair Plot maken
Het maken van een pair plot met seaborn
komt neer op het aanroepen van de functie pairplot()
. De belangrijkste en enige verplichte parameter is data
, die een DataFrame
object moet zijn.
import seaborn as sns import matplotlib.pyplot as plt # Loading the dataset with data about three different iris species iris_df = sns.load_dataset('iris') # Creating a pair plot sns.pairplot(iris_df, height=2, aspect=0.8) plt.show()
De DataFrame iris_df
wordt doorgegeven aan de functie pairplot()
. De parameters height
en aspect
bepalen de hoogte en breedte (berekend als hoogte vermenigvuldigd met aspect) van elk facet in inches.
Hue
Een andere parameter die het vermelden waard is, is hue
. Deze specificeert de variabele (kolomnaam) in data
om plotaspecten aan verschillende kleuren toe te wijzen of zelfs afzonderlijke plots (op één Axes
) te maken voor elk van zijn waarden.
import seaborn as sns import matplotlib.pyplot as plt # Ignoring warnings import warnings warnings.filterwarnings('ignore') # Loading the dataset with data about three different iris species iris_df = sns.load_dataset('iris') # Setting the hue parameter to 'species' sns.pairplot(iris_df, hue='species', height=2, aspect=0.8) plt.show()
Het verschil is hier duidelijk zichtbaar. De datapunten in elk spreidingsdiagram zijn gekleurd op basis van de soort waartoe ze behoren, met behulp van de waarden uit de species-kolom. De diagonale grafieken zijn nu KDE-plots voor elke soort in plaats van histogrammen.
Bij classificatieproblemen is het vaak zinvol om een pair plot te maken met de hue
-parameter ingesteld op de doelvariabele, de categorische variabele die we willen voorspellen.
Het verschil is duidelijk. Datapunten in elk spreidingsdiagram zijn gekleurd volgens hun soort, gebaseerd op de waarden in de species-kolom. De diagonale grafieken zijn vervangen door KDE-plots voor elke soort in plaats van histogrammen.
Bij classificatietaken is het vaak nuttig om een pair plot te maken met de hue
-parameter ingesteld op de doelvariabele — de categorische variabele die voorspeld moet worden.
Plottypen wijzigen
Het is mogelijk om het type grafieken te wijzigen in plaats van de standaard spreidingsdiagrammen, evenals de grafieken die op de diagonaal worden weergegeven. De parameter kind
bepaalt de hoofdplots en staat standaard op spreidingsdiagrammen, terwijl de parameter diag_kind
de diagonale grafieken regelt en automatisch wordt gekozen op basis van of de hue
-parameter is ingesteld.
import seaborn as sns import matplotlib.pyplot as plt # Loading the dataset with data about three different iris species iris_df = sns.load_dataset('iris') # Setting the kind parameter and diag_kind parameters sns.pairplot(iris_df, hue='species', kind='reg', diag_kind=None, height=2, aspect=0.8) plt.show()
'scatter'
, 'kde'
, 'hist'
, 'reg'
zijn mogelijke waarden voor de parameter kind
.
diag_kind
kan worden ingesteld op een van de volgende waarden:
'auto'
;'hist'
;'kde'
;None
.
Dit werkt vergelijkbaar met de functie jointplot()
in dit opzicht.
Lees meer in de pairplot()
documentatie.
Swipe to start coding
- Gebruik de juiste functie om een pair plot te maken.
- Stel de data voor de plot in op
penguins_df
via het eerste argument. - Stel
'sex'
in als de kolom die de plotaspecten aan verschillende kleuren koppelt door het tweede argument te specificeren. - Stel de niet-diagonale plots in op een regressielijn (
'reg'
) door het derde argument te specificeren. - Stel
height
in op2
. - Stel
aspect
in op0.8
.
Oplossing
Bedankt voor je feedback!