Un violin plot est utilisé pour visualiser la distribution des données et sa densité de probabilité.
Ce graphique est une combinaison d’un boxplot et d’un density plot retourné placé de chaque côté, pour afficher la distribution des données.
Habituellement, les violin plots comprennent un marqueur pour la médiane des données et une case indiquant l’écart interquartile, comme des boxplots standard.
Une représentation graphique en violin plot montre plus d’informations qu’une représentation graphique en boxplot. Par exemple, dans un violin plot, vous pouvez voir si la distribution des données est bimodale ou multimodale.
Cet article décrit comment créer et personnaliser des violin plots en utilisant le package ggplot2 dans R.
Contents:
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RFonctions R clés
Fonction clé:
geom_violin()
: Crée des violin plots. Arguments clés:color
,size
,linetype
: Couleur, taille et type de ligne de bordurefill
: Couleur des zones de remplissagetrim
: valeur logique. Si TRUE (par défaut), coupe les queues des violins jusqu’à la limite de la plage de données. Si FALSE, ne coupe pas les queues.
stat_summary()
: Ajoute des statistiques descriptives (moyenne, médiane, ….) sur les violin plots.
Préparation des données
- Données de démonstration:
ToothGrowth
- Variable continue :
len
(longueur des dents). Utilisé sur l’axe des y - Variable de regroupement :
dose
(doses de vitamine C : 0,5, 1 et 2 mg/jour). Utilisé sur l’axe des x.
- Variable continue :
Tout d’abord, convertir la variable dose
d’une variable numérique en une variable discrète de groupes:
data("ToothGrowth")
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
head(ToothGrowth, 4)
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
## 4 5.8 VC 0.5
Chargement des packages R requis
Chargez le package ggplot2 et mettez le thème par défaut à theme_classic()
avec la légende en haut du graphique:
library(ggplot2)
theme_set(
theme_classic() +
theme(legend.position = "top")
)
Violin plot de basique
Nous commençons par initier un graphique nommé e
, puis nous allons ajouter des couches. Le code R suivant crée des violin plots combinés avec des statistiques descriptives (moyenne +/- SD) et des boxplots.
Créez des violin plots de base avec des statistiques descriptives:
# Initialiser un ggplot
e <- ggplot(ToothGrowth, aes(x = dose, y = len))
# Ajoute les points moyens +/- SD
# Utiliser geom = "pointrange" ou geom = "crossbar"
e + geom_violin(trim = FALSE) +
stat_summary(
fun.data = "mean_sdl", fun.args = list(mult = 1),
geom = "pointrange", color = "black"
)
# Combiner avec les box plots pour ajouter la médiane et les quartiles
# Changer la couleur de remplissage par groupe, supprimer la légende
e + geom_violin(aes(fill = dose), trim = FALSE) +
geom_boxplot(width = 0.2)+
scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))+
theme(legend.position = "none")
La fonction mean_sdl
est utilisée pour ajouter la moyenne et l’écart-type. Il calcule la moyenne plus ou moins une constante fois l’écart-type. Dans le code R ci-dessus, la constante est spécifiée en utilisant l’argument mult
(mult = 1). Par défaut mult = 2. La moyenne +/- SD peut être ajoutée sous forme de crossbar ou de pointrange.
Créez un violin plot avec plusieurs groupes
Deux variables de regroupement différentes sont utilisées : dose
sur l’axe des x et supp
comme couleur de lignes (variable de la légende).
L’espace entre les graphiques groupés est ajusté à l’aide de la fonction position_dodge()
.
e + geom_violin(aes(color = supp), trim = FALSE, position = position_dodge(0.9) ) +
geom_boxplot(aes(color = supp), width = 0.15, position = position_dodge(0.9)) +
scale_color_manual(values = c("#00AFBB", "#E7B800"))
Conclusion
Cet article décrit comment créer un violin plot à l’aide du package ggplot2.
Version: English
No Comments