Diagrammes de distribution
-
sns.histplot()
La fonction sns.histplot() permet de tracer un histogramme de données univariées. Elle est similaire à sns.displot(), mais elle offre plus de flexibilité pour personnaliser le graphique en termes de couleur, de type de distribution et d'autres paramètres. C'est un excellent moyen de visualiser la distribution d'une variable.
Importation :
import seaborn as sns
Attributs :
Paramètre Type Description Valeur par défaut data
DataFrame Le DataFrame contenant les données à visualiser. None
x
str Nom de la variable à tracer sur l’axe des x. None
hue
str Nom de la variable à utiliser pour colorer les données par catégories. None
bins
int Nombre de bins (intervalles) dans l’histogramme. 10
kde
bool Si True
, une courbe KDE est tracée sur l’histogramme.False
stat
str Type de statistiques à afficher. Options incluent « count » (par défaut), « frequency », « density », et « probability ». "count"
color
str Couleur des barres de l’histogramme. "blue"
discrete
bool Si True
, un histogramme discret est tracé (au lieu d’un histogramme continu).False
Exemple de code :
import seaborn as sns import matplotlib.pyplot as plt # Chargement du dataset "tips" data = sns.load_dataset("tips") # Tracer l'histogramme de la variable 'total_bill' avec une courbe KDE sns.histplot(data=data, x="total_bill", kde=True) plt.show()
Explication du code :
Nous utilisons
sns.histplot()
pour tracer l’histogramme de la variabletotal_bill
dans le datasettips
. L’optionkde=True
ajoute une courbe de densité de noyau sur l’histogramme afin de mieux visualiser la distribution des données.Remarques :
-
-
Type de statistiques : Le paramètre
stat
permet de choisir les statistiques à afficher sur l’axe des y. Les options incluent « count », « density », « probability », et « frequency ». Par défaut, l’option est « count », qui affiche le nombre d’occurrences dans chaque bin. -
Paramètre
kde
: Lorsqu’il est activé, le paramètrekde=True
ajoute une courbe KDE (Kernel Density Estimate) à l’histogramme. Cela permet de mieux comprendre la forme de la distribution des données. -
Histogramme discret : Si vous voulez visualiser un histogramme discret (pour des données discrètes), vous pouvez activer le paramètre
discrete=True
.
-
-
-
sns.displot()
La fonction sns.displot() permet de tracer une distribution univariée ou bivariée sous forme d'histogramme ou de kernel density estimate (KDE). Elle est particulièrement utile pour visualiser la distribution d'une variable, et peut être utilisée pour des tracés simples ou plus complexes avec plusieurs types de visualisations combinées.
Importation :
import seaborn as sns
Attributs :
Paramètre Type Description Valeur par défaut data
DataFrame Le DataFrame contenant les données à visualiser. None
x
str Nom de la variable à tracer sur l’axe des x (données continues). None
hue
str Nom de la variable à utiliser pour colorer les données par catégories. None
kind
str Type de graphique à tracer. Les options incluent « hist » (par défaut), « kde », « ecdf », et « step » pour l’histogramme, la densité de noyau, la fonction de répartition empirique et l’histogramme avec étapes, respectivement. "hist"
bins
int Nombre de bins (intervalles) dans l’histogramme. 10
kde
bool Si True
, une courbe KDE est tracée sur l’histogramme.False
height
float Hauteur du graphique, en pouces. 5
aspect
float Rapport d’aspect du graphique. Un aspect de 1.0 signifie un graphique carré. 1.0
Exemple de code :
import seaborn as sns import matplotlib.pyplot as plt # Chargement du dataset "tips" data = sns.load_dataset("tips") # Tracer la distribution de la variable 'total_bill' sous forme d'histogramme avec une courbe KDE sns.displot(data=data, x="total_bill", kde=True) plt.show()
Explication du code :
Nous utilisons
sns.displot()
pour tracer la distribution de la variabletotal_bill
(facture totale) dans le datasettips
. En spécifiantkde=True
, nous ajoutons une courbe de densité de noyau à l’histogramme, ce qui permet de mieux visualiser la distribution des données.Remarques :
-
-
Type de graphique : Le paramètre
kind
permet de choisir entre différents types de visualisation, comme un histogramme classique ("hist"
), une estimation de densité de noyau ("kde"
), une fonction de répartition empirique ("ecdf"
), ou un histogramme avec des étapes ("step"
). -
Paramètre
kde
: Lorsqu’il est activé, le paramètrekde=True
ajoute une courbe lissée qui donne une meilleure idée de la distribution des données, en complément de l’histogramme. -
Paramètres de personnalisation : Les paramètres
height
etaspect
permettent d’ajuster l’apparence du graphique, notamment sa taille et son rapport d’aspect.
-
-
-
sns.kdeplot()
La fonction sns.kdeplot() permet de tracer une estimation de la densité de probabilité d'une variable continue en utilisant une méthode de noyau. Cela donne une représentation lisse de la distribution des données sous forme de courbe.
Importation :
import seaborn as sns
Attributs :
Paramètre Type Description Valeur par défaut data
DataFrame Le DataFrame contenant les données à visualiser. None
x
str Nom de la variable à tracer sur l’axe des x (données continues). None
y
str Nom de la variable à tracer sur l’axe des y (facultatif). None
hue
str Nom de la variable à utiliser pour colorer la courbe par catégories. None
shade
bool Si True
, la zone sous la courbe sera ombrée.False
bw
float Largeur de bande (bandwidth) pour l’estimation de la densité. Un plus petit valeur rend la courbe plus lisse, une plus grande la rend plus rugueuse. None
vertical
bool Si True
, l’axe des x et y sont inversés (trace verticale).False
cumulative
bool Si True
, trace une courbe cumulative au lieu de la densité.False
ax
Axes Axes de matplotlib sur lequel dessiner le graphique. None
Exemple de code :
import seaborn as sns import matplotlib.pyplot as plt # Chargement du dataset "tips" data = sns.load_dataset("tips") # Tracer une estimation de la densité pour la variable total_bill sns.kdeplot(data=data, x="total_bill", shade=True) plt.show()
Explication du code :
Nous utilisons
sns.kdeplot()
pour estimer la densité de probabilité de la variabletotal_bill
(facture totale) dans le datasettips
. La courbe est ombrée grâce à l’argumentshade=True
, ce qui permet de visualiser la distribution des valeurs detotal_bill
sous forme lisse.Remarques :
-
-
Estimation de densité lissée : La fonction KDE est idéale pour visualiser la distribution continue d’un ensemble de données et est souvent utilisée pour détecter des pics ou des tendances dans les données.
-
Argument
bw
: L’argumentbw
permet de contrôler la largeur de bande de l’estimation, ce qui peut influencer la forme de la courbe. Une valeur plus petite rend la courbe plus lisse, tandis qu’une valeur plus grande la rend plus détaillée. -
Option cumulative : L’option
cumulative=True
permet de transformer la courbe en une fonction de répartition cumulative (CDF), ce qui est utile pour observer la probabilité cumulée d’un événement.
-
-
-
sns.boxplot()
La fonction sns.boxplot() permet de tracer un diagramme en boîte (boxplot), qui est un graphique statistique montrant la distribution d'un ensemble de données. Il présente la médiane, le premier et le troisième quartile, ainsi que les valeurs aberrantes potentielles sous forme de points.
Importation :
import seaborn as sns
Attributs :
Paramètre Type Description Valeur par défaut data
DataFrame Le DataFrame contenant les données à visualiser. None
x
str Nom de la variable à afficher sur l’axe des x (catégories). None
y
str Nom de la variable à afficher sur l’axe des y (valeurs). None
hue
str Nom de la variable à utiliser pour colorer les boîtes par catégories. None
palette
str / list Palette de couleurs à utiliser pour les différentes catégories de la variable hue
.None
width
float Largeur des boîtes (compris entre 0 et 1). 0.8
fliersize
float Taille des points représentant les valeurs aberrantes. 5
whis
float or str Définit les « moustaches » (les étendues des boîtes). Valeur par défaut : 1.5, ce qui signifie que les moustaches s’étendent jusqu’à 1.5 fois l’écart interquartile. 1.5
orient
str Orientation du graphique. Options : "v"
pour vertical,"h"
pour horizontal."v"
ax
Axes Axes de matplotlib sur lequel dessiner le graphique. None
Exemple de code :
import seaborn as sns import matplotlib.pyplot as plt # Chargement du dataset "tips" data = sns.load_dataset("tips") # Tracer un boxplot pour la variable total_bill en fonction du jour sns.boxplot(x="day", y="total_bill", data=data) plt.show()
Explication du code :
Nous utilisons
sns.boxplot()
pour afficher la distribution des valeurs detotal_bill
(facture totale) pour chaque jour de la semaine (day
). Chaque boîte représente l’écart interquartile (IQR) de la variabletotal_bill
pour un jour donné, avec les moustaches représentant l’étendue des données, et les points au-delà des moustaches sont considérés comme des valeurs aberrantes.Remarques :
-
-
Pratique pour identifier les valeurs aberrantes : Le boxplot est particulièrement utile pour détecter les valeurs aberrantes dans les données.
-
Visualisation des quartiles : Il permet de visualiser rapidement la médiane, le premier et le troisième quartile, ce qui donne un bon aperçu de la distribution des données.
-
Paramètre
whis
: Le paramètrewhis
permet de contrôler la longueur des moustaches du boxplot, c’est-à-dire l’extension des données au-delà du quartile supérieur et inférieur. Unwhis
plus grand étendra les moustaches, tandis qu’unwhis
plus petit les limitera.
-
-
-
sns.violinplot()
La fonction sns.violinplot() permet de tracer un diagramme en violon. Ce graphique combine un boxplot et un kdeplot (estimation de densité) pour visualiser la distribution des données. Chaque violon représente la distribution d'une variable pour une catégorie spécifique, avec la largeur représentant la densité des données à différentes valeurs.
Importation :
import seaborn as sns
Attributs :
Paramètre Type Description Valeur par défaut data
DataFrame Le DataFrame contenant les données à visualiser. None
x
str Nom de la variable à afficher sur l’axe des x (catégories). None
y
str Nom de la variable à afficher sur l’axe des y (valeurs). None
hue
str Nom de la variable à utiliser pour colorer les violons par catégories. None
palette
str / list Palette de couleurs à utiliser pour les différentes catégories de la variable hue
.None
split
bool Si True, divise chaque violon pour chaque catégorie de la variable hue
.False
scale
str Définit la méthode de mise à l’échelle de la largeur des violons. Options : "area"
,"count"
,"width"
."area"
inner
str Spécifie le type de graphique à afficher à l’intérieur du violon. Options : "box"
,"stick"
,"point"
,None
."box"
bw
float Le paramètre de lissage de la densité (largueur de la fenêtre de lissage). 0.2
Exemple de code :
import seaborn as sns import matplotlib.pyplot as plt # Chargement du dataset "tips" data = sns.load_dataset("tips") # Tracer un violonplot pour la variable total_bill en fonction du jour sns.violinplot(x="day", y="total_bill", data=data, hue="sex", split=True) plt.show()
Explication du code :
Nous utilisons
sns.violinplot()
pour afficher la distribution de la variabletotal_bill
(facture totale) pour chaque jour de la semaine (day
). La variablesex
est utilisée pour colorier les violons et les séparer selon les valeurs de sexe. L’optionsplit=True
divise les violons par sexe, créant deux violons pour chaque jour.Remarques :
-
-
Combinaison de boxplot et kdeplot : Le violonplot permet de visualiser à la fois la médiane (via le boxplot) et la densité des données (via le kdeplot), ce qui donne une vue complète de la distribution des données.
-
Utilisation avec plusieurs variables : Le paramètre
hue
permet de séparer les violons par catégorie, ce qui est utile pour examiner les différences entre les groupes. -
Contrôle du lissage : Le paramètre
bw
(bandwidth) contrôle le lissage de la densité. Un faiblebw
rend le violonplot plus détaillé, tandis qu’unbw
plus élevé rendra la courbe plus lisse.
-
-
-
sns.rugplot()
La fonction sns.rugplot() est utilisée pour ajouter un graphique de "rug" (tapis de rugissement) à un axe, qui est un graphique unidimensionnel représentant la distribution des données sous forme de petites lignes verticales (ou "rug" sur l'axe des x ou y). Elle permet de visualiser la densité des données le long d'un seul axe.
Importation :
import seaborn as sns
Attributs :
Paramètre Type Description Valeur par défaut data
DataFrame Le DataFrame contenant les données à visualiser. None
x
str Nom de la variable à utiliser pour l’axe des x. None
y
str Nom de la variable à utiliser pour l’axe des y. None
hue
str Nom de la variable dans les données pour colorer les rug en fonction d’une catégorie. None
height
float Hauteur des rug. 0.05
axis
matplotlib axis L’axe sur lequel afficher le rug plot (utile pour la personnalisation de l’affichage). None
color
str Couleur des rug. "k"
linewidth
float Épaisseur des lignes représentant les rug. 1.0
Exemple de code :
import seaborn as sns import matplotlib.pyplot as plt # Création d'un DataFrame exemple data = sns.load_dataset("tips") # Tracer un rugplot pour visualiser la distribution de la variable total_bill sns.rugplot(x="total_bill", data=data, color="b") plt.show()
Explication du code :
Nous utilisons
sns.rugplot()
pour visualiser la distribution des valeurs detotal_bill
dans le datasetdata
. Chaque « rug » représente une observation dans les données. Ici, les rug sont tracés le long de l’axe des x et colorés en bleu (color="b"
).Remarques :
-
-
Visualisation de la densité des données :
sns.rugplot()
permet de voir la densité des données le long d’un axe. C’est un moyen simple et efficace de visualiser la répartition des données. -
Utilisation avec d’autres plots : Le rugplot est souvent utilisé en complément d’autres types de graphiques, comme un histogramme ou un kdeplot, pour mieux comprendre la distribution des données.
-
Contrôle de la taille et de la couleur : Il est possible de personnaliser la couleur et l’épaisseur des rug, ce qui peut aider à améliorer la visibilité dans des graphiques complexes.
-
-