Les boxplots (ou boîtes à moustaches) sont utilisés pour visualiser la distribution d’une variable continue groupée à travers leurs quartiles.
Les boxplots ont l’avantage d’occuper moins d’espace que les diagrammes d’histogramme et de densité. Ceci est utile pour comparer les distributions entre plusieurs groupes.
La visualisation des données à l’aide de boxplots permet de:
- Inspecter les valeurs clés des données, y compris : la moyenne, la médiane, les premier et troisième quartiles, etc
- Identifier les valeurs aberrantes potentielles dans les données
- Voyez si les données sont étroitement groupées, symétriques ou asymétriques, etc
Cet article décrit comment créer et personnaliser un boxplot 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
- Fonctions R clés :
geom_boxplot()
[package ggplot2] - Arguments clés pour personnaliser le graphique:
width
: la largeur du box plotnotch
: logique. Si TRUE, crée un boxplot avec notch. Le notch affiche un intervalle de confiance autour de la médiane, qui est normalement basé sur lemedian +/- 1.58*IQR/sqrt(n)
. Les “Notches” sont utilisées pour comparer les groupes ; si les notches de deux box plots ne se chevauchent pas, c’est une preuve solide que les médianes sont différentes.color
,size
,linetype
: Couleur, taille et type de ligne de bordurefill
: couleur de remplissage des zones du box plotoutlier.colour
,outlier.shape
,outlier.size
: La couleur, la forme et la taille des points outliers.
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")
)
Boxplots de base
Nous commençons par initier un graphique nommé e
, puis nous allons ajouter des couches:
# Graphique par défaut
e <- ggplot(ToothGrowth, aes(x = dose, y = len))
e + geom_boxplot()
# Box plot à notch avec les points moyens
e + geom_boxplot(notch = TRUE, fill = "lightgray")+
stat_summary(fun.y = mean, geom = "point",
shape = 18, size = 2.5, color = "#FC4E07")
Notez qu’il est possible d’utiliser la fonction scale_x_discrete()
pour:
- choix des éléments à afficher : par exemple c(“0.5”, “2”),
- changer l’ordre des éléments : par exemple de c(“0.5”, “1”, “2”) à c(“2”, “0.5”, “1”)
Par exemple, tapez ceci:
# Choisir les éléments à afficher : groupe "0.5" et "2"
e + geom_boxplot() +
scale_x_discrete(limits=c("0.5", "2"))
# Modifier l'ordre par défaut des éléments
e + geom_boxplot() +
scale_x_discrete(limits=c("2", "0.5", "1"))
Changer les couleurs de boxplot par groupes:
Le code R suivant changera la ligne et la couleur de remplissage des boxplot. Les fonctions scale_color_manual()
et scale_fill_manual()
sont utilisées pour spécifier des couleurs personnalisées pour chaque groupe.
# Couleur par groupe (dose)
e + geom_boxplot(aes(color = dose))+
scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
# Changer la couleur de remplissage par groupe (dose)
e + geom_boxplot(aes(fill = dose)) +
scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
Créer un boxplot avec plusieurs groupes
Deux variables de regroupement différentes sont utilisées : dose
sur l’axe des abscisses et supp
comme couleur de remplissage (variable de la légende).
L’espace entre les boxplots groupés est ajusté à l’aide de la fonction position_dodge()
.
e2 <- e +
geom_boxplot(aes(fill = supp), position = position_dodge(0.9) ) +
scale_fill_manual(values = c("#999999", "#E69F00"))
e2
Boxplots à panneaux multiples
Vous pouvez diviser le graphique en plusieurs panneaux à l’aide de la fonction facet_wrap()
:
e2 + facet_wrap(~supp)
Conclusion
Cet article décrit comment créer un boxplot en utilisant le package ggplot2.
Version: English
No Comments