Un dot plot est utilisé pour visualiser la distribution des données. Ce graphique crée des points empilés, où chaque point représente une observation.
Des statistiques descriptives sont habituellement ajoutées aux dot plots pour indiquer, par exemple, la médiane des données et l’écart interquartile.
Cet article décrit comment créer et personnaliser des dot plots en utilisant le package ggplot2 dans R.
Sommaire:
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RFonctions R clés
- Fonction clé:
geom_dotplot()
. Crée des points empilés, chaque point représentant une observation. - Arguments clés:
stackdir
: la direction dans laquelle les points doivent être empilés. “up” (haut, par défaut), “down” (bas), center (centre), “centerwhole” (centré, mais avec des points alignés).stackratio
: à quelle distance empiler les points. La valeur par défaut est 1, où les points se touchent. Utilisez des valeurs plus petites pour des points plus proches et se chevauchant.color
,fill
: Couleur des bordures des points et couleur de remplissage de la surfacedotsize
: Le diamètre des points par rapport au binwidth, par défaut 1.
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")
)
Dot plots basiques
Nous commençons par initier un graphique nommé e
, puis nous allons ajouter des couches. Le code R suivant crée des pointillés combinés avec des statistiques descriptives (moyenne +/- SD), des boxplots et des violin plots.
# Initialiser un ggplot
e <- ggplot(ToothGrowth, aes(x = dose, y = len))
# Dotplot avec statistiques descriptives : moyenne +/- SD
e + geom_dotplot(binaxis = "y", stackdir = "center", fill = "lightgray") +
stat_summary(fun.data = "mean_sdl", fun.args = list(mult=1))
# Dot plots combinées avec des box plots
e + geom_boxplot(width = 0.5) +
geom_dotplot(binaxis = "y", stackdir = "center", fill = "lightgray")
# Dot plot + Violin plot + statistiques descriptives
e + geom_violin(trim = FALSE) +
geom_dotplot(binaxis='y', stackdir='center', fill = "#999999") +
stat_summary(fun.data="mean_sdl", fun.args = list(mult=1))
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éer un dot plot avec plusieurs groupes
Deux variables de regroupement différentes sont utilisées : dose
sur l’axe des x et supp
pour la couleur (variable de la légende).
L’espace entre les graphiques groupés est ajusté à l’aide de la fonction position_dodge()
.
# Changer la couleur de remplissage des points par groupes
e + geom_boxplot(width = 0.5) +
geom_dotplot(aes(fill = supp), binaxis='y', stackdir='center')+
scale_fill_manual(values = c("#00AFBB", "#E7B800"))
# Modifier la position : intervalle entre les dot plots d'un même groupe
e + geom_boxplot(aes(color = supp), width = 0.5, position = position_dodge(0.8)) +
geom_dotplot(aes(fill = supp, color = supp), binaxis='y', stackdir='center',
dotsize = 0.8,position = position_dodge(0.8))+
scale_fill_manual(values = c("#00AFBB", "#E7B800"))+
scale_color_manual(values = c("#00AFBB", "#E7B800"))
Conclusion
Cet article décrit comment créer un graphique de points à l’aide du package ggplot2.
Version: English
Bonjour. Le dernier code fourni ne permet de réaliser le dernier graphe. En effet, on obtient pas un plot avec 6 moustaches mais seulement deux. Il n’y a pas de séparation suivant la dose.