Diagramme en violon (2D)
Le diagramme en violon est une représentation graphique avancée qui combine les avantages du box plot et de l’estimation de la densité de probabilité. Il permet de visualiser non seulement les statistiques résumées d’une variable numérique, comme la médiane et les quartiles, mais aussi la forme complète de sa distribution.
Le diagramme en violon affiche la densité estimée des données de part et d’autre d’un axe vertical, formant une forme symétrique ressemblant à un violon. Cette visualisation donne une idée précise de la concentration des valeurs, des modes multiples, et des asymétries éventuelles dans la distribution.
Ce type de graphique est particulièrement utile pour :
- Comparer la distribution complète de plusieurs groupes ou catégories,
- Détecter des distributions multimodales ou des asymétries,
- Visualiser la densité des données en complément des statistiques classiques,
- Identifier des différences fines dans la structure des données qui peuvent être invisibles avec un simple box plot.
Grâce à sa richesse visuelle, le diagramme en violon est un outil précieux en analyse exploratoire des données pour mieux comprendre la nature sous-jacente des distributions étudiées.
Fonctions :
-
px.violin()
px.violin() crée un diagramme en violon interactif, qui combine un box plot et une estimation de la densité de probabilité d'une variable numérique, permettant de visualiser la distribution et la forme des données.
Importation :
import pandas as pd import plotly.express as px
Attributs :
Paramètre Type Description Valeur par défaut data_frame
DataFrame Tableau de données source. Obligatoire y
str Nom de la colonne numérique à représenter sur l’axe des ordonnées. Obligatoire x
str Nom de la colonne catégorielle utilisée pour grouper les données (optionnel). None
color
str Colonne utilisée pour colorer les violons selon une catégorie. None
box
bool Si True
, affiche un box plot à l’intérieur du violon.False
points
str Affiche les points individuels. Valeurs possibles : 'all'
,'outliers'
,'suspectedoutliers'
,'False'
.False
title
str Titre du graphique. None
Exemple de code :
import pandas as pd import plotly.express as px # Création d'un DataFrame data = { 'Catégorie': ['X', 'X', 'Y', 'Y', 'X', 'Y', 'X', 'Y'], 'Valeur': [5, 7, 8, 6, 9, 7, 6, 8] } df = pd.DataFrame(data) # Création du diagramme en violon fig = px.violin(df, x='Catégorie', y='Valeur', box=True, points='all', title='Distribution des valeurs par catégorie') # Affichage fig.show()
Explication du code :
importe les bibliothèques pandas et plotly.express.
Création du DataFrame
Le dictionnairedata
contient deux colonnes : -'Catégorie'
(catégories), -'Valeur'
(valeurs numériques).df = pd.DataFrame(data)
transforme ce dictionnaire en tableau.Création du diagramme en violon
px.violin(...)
crée un graphique interactif combinant densité et box plot : -x='Catégorie'
pour grouper les données, -y='Valeur'
pour la variable à distribuer, -box=True
pour afficher un box plot à l’intérieur, -points='all'
pour afficher tous les points individuels, -title='Distribution des valeurs par catégorie'
pour le titre.Affichage
fig.show()
affiche le graphique.