Violin Plot
Le Violin Plot (ou diagramme en violon) est une visualisation statistique avancée qui combine les atouts du Box Plot et de la courbe de densité (KDE). Il permet non seulement de résumer la distribution d’une variable numérique, mais aussi de visualiser sa forme complète : symétrie, modes, étalement, et présence de valeurs aberrantes.
Contrairement au Box Plot, qui ne montre que des statistiques résumées (médiane, quartiles, outliers), le Violin Plot ajoute une estimation lisse de la densité de probabilité, souvent symétrique autour de la médiane, ce qui le rend idéal pour analyser des distributions complexes ou multimodales.
Ce type de graphique est particulièrement utile pour :
-
Comparer la forme de plusieurs distributions entre différentes catégories
-
Repérer des variations subtiles dans la densité (pics, aplatissements)
-
Visualiser à la fois la distribution complète et les statistiques de base
Fonctions :
-
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 :
import seaborn as sns
importe la bibliothèque seaborn, utilisée pour la visualisation de données statistiques en Python.import matplotlib.pyplot as plt
importe la bibliothèque matplotlib.pyplot pour la création de graphiques.Chargement du dataset "tips"
data = sns.load_dataset("tips")
charge le dataset "tips", qui contient des informations sur les pourboires dans des restaurants, et l'assigne à la variabledata
.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)
trace un violonplot, qui combine un boxplot et un KDE (estimation de la densité de probabilité) pour montrer la distribution des montants de l'addition ('total_bill') en fonction des jours de la semaine ('day'). Le paramètre hue="sex" permet de différencier les données par sexe (hommes et femmes), et split=True permet de séparer les violons pour les hommes et les femmes.Afficher le graphique
plt.show()
affiche le graphique généré à l'écran.