Introduction à Seaborn#
Seaborn est une bibliothèque pour créer des graphiques statistiques en Python. Elle s’appuie sur matplotlib et s’intègre étroitement avec les structures de données de pandas.
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
Nuages de points avec seaborn#
Nous commençons par charger un tableau de mesures dans un dataframe df.
df = pd.read_csv("../../data/BBBC007_analysis.csv")
df
| area | intensity_mean | major_axis_length | minor_axis_length | aspect_ratio | file_name | |
|---|---|---|---|---|---|---|
| 0 | 139 | 96.546763 | 17.504104 | 10.292770 | 1.700621 | 20P1_POS0010_D_1UL |
| 1 | 360 | 86.613889 | 35.746808 | 14.983124 | 2.385805 | 20P1_POS0010_D_1UL |
| 2 | 43 | 91.488372 | 12.967884 | 4.351573 | 2.980045 | 20P1_POS0010_D_1UL |
| 3 | 140 | 73.742857 | 18.940508 | 10.314404 | 1.836316 | 20P1_POS0010_D_1UL |
| 4 | 144 | 89.375000 | 13.639308 | 13.458532 | 1.013432 | 20P1_POS0010_D_1UL |
| ... | ... | ... | ... | ... | ... | ... |
| 106 | 305 | 88.252459 | 20.226532 | 19.244210 | 1.051045 | 20P1_POS0007_D_1UL |
| 107 | 593 | 89.905565 | 36.508370 | 21.365394 | 1.708762 | 20P1_POS0007_D_1UL |
| 108 | 289 | 106.851211 | 20.427809 | 18.221452 | 1.121086 | 20P1_POS0007_D_1UL |
| 109 | 277 | 100.664260 | 20.307965 | 17.432920 | 1.164920 | 20P1_POS0007_D_1UL |
| 110 | 46 | 70.869565 | 11.648895 | 5.298003 | 2.198733 | 20P1_POS0007_D_1UL |
111 rows × 6 columns
À partir de ce tableau, nous pouvons créer un nuage de points du rapport d’aspect par rapport à l’intensité moyenne.
sns.scatterplot(data=df, x="aspect_ratio", y="intensity_mean")
<AxesSubplot: xlabel='aspect_ratio', ylabel='intensity_mean'>
Nous pouvons intégrer et visualiser d’autres caractéristiques en fournissant quelques arguments supplémentaires. Par exemple, nous pouvons utiliser la mesure de la surface pour encoder la taille des points de données, et la longueur de l’axe principal peut être utilisée pour visualiser les points de données en différentes couleurs à partir de la palette de couleurs magma.
sns.scatterplot(data=df,
x = "aspect_ratio",
y = "intensity_mean",
size = "area",
hue = "major_axis_length",
palette = 'magma')
<AxesSubplot: xlabel='aspect_ratio', ylabel='intensity_mean'>
La fonction scatterplot est une fonction au niveau des axes. Cela signifie que si nous voulons ajouter des sous-graphiques, nous devons d’abord créer une figure et des axes à partir de matplotlib et passer les poignées d’axes.
Nuages de points avec sous-graphiques#
Seaborn dispose également de fonctions au niveau de la figure, où les sous-graphiques sont un argument.
Dans l’exemple ci-dessous, nous utilisons la fonction relplot (de relationship) et séparons les fichiers en fournissant ‘file_name’ à l’argument col. Cela nous permet de voir les mesures séparées par le fichier image à partir duquel les mesures ont été prises.
sns.relplot(data=df,
x = "aspect_ratio",
y = "intensity_mean",
size = "area",
hue = "major_axis_length",
col = "file_name",
palette = 'magma')
<seaborn.axisgrid.FacetGrid at 0x148dd2d2be0>