Visualisation des Données à l'Aide de GGPlot2

GGPlot Violin Plot

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 R

Fonctions 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 bordure
    • fill: Couleur des zones de remplissage
    • trim: 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.

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

GGPLOT Boxplot (Prev Lesson)
(Next Lesson) GGPLOT Dot Plot
Back to Visualisation des Données à l’Aide de GGPlot2

No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments

Teacher
Alboukadel Kassambara
Role : Fondateur de Datanovia
Read More