Les barres d’erreur sont utilisées pour visualiser la variabilité des données tracées. Des barres d’erreur peuvent être appliquées à des graphiques tels que des dot plots, des bar plots ou des line plots, afin de fournir une couche supplémentaire de détails sur les données présentées.
Généralement, les barres d’erreur sont utilisées pour montrer soit l’écart-type, l’erreur-type, les intervalles de confiance ou l’écart interquartile.
La longueur d’une barre d’erreur permet de révéler l’incertitude d’un point de données : une barre d’erreur courte indique que les valeurs sont concentrées, indiquant que la valeur moyenne tracée est plus probable, tandis qu’une barre d’erreur longue indique que les valeurs sont plus dispersées et moins fiables.
Cet article décrit comment ajouter des barres d’erreur dans un graphique en utilisant le package ggplot2 dans R. Vous apprendrez comment créer des bar plots et des line plots avec des barres d’erreur
Sommaire:
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RChargement 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")
)
Préparation des données
- Préparer les données : Jeu de données sur la croissance des dents.
df <- ToothGrowth
df$dose <- as.factor(df$dose)
head(df, 3)
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
- Calculer des statistiques descriptives pour la variable
len
organisée en groupes par la variabledose
:
library(dplyr)
df.summary <- df %>%
group_by(dose) %>%
summarise(
sd = sd(len, na.rm = TRUE),
len = mean(len)
)
df.summary
## # A tibble: 3 x 3
## dose sd len
## <fct> <dbl> <dbl>
## 1 0.5 4.50 10.6
## 2 1 4.42 19.7
## 3 2 3.77 26.1
Fonctions R clés et types de barre d’erreurs
Fonctions clés pour créer des barres d’erreur en utilisant les données statistiques descriptives:
geom_crossbar()
pour le crossbar avec le milieu indiqué par une ligne horizontalegeom_errorbar()
pour les barres d’erreurgeom_errorbarh()
pour les barres d’erreur horizontalesgeom_linerange()
pour dessiner un intervalle représenté par une ligne verticalegeom_pointrange()
pour créer un intervalle représenté par une ligne verticale, avec un point au milieu.
Commencez par initialiser ggplot avec les données statistiques descriptives:
- Spécifiez x et y comme d’habitude
- Spécifiez
ymin = len-sd
etymax = len+sd
pour ajouter des barres d’erreur inférieures et supérieures. Si vous voulez seulement ajouter des barres d’erreur supérieures mais pas les barres inférieures, utilisezymin = len
(au lieu delen-sd
) etymax = len+sd
.
# Initialiser ggplot avec des données
f <- ggplot(
df.summary,
aes(x = dose, y = len, ymin = len-sd, ymax = len+sd)
)
Diagrammes d’erreurs possibles:
Barres d’erreur basiques
Créer des diagrammes d’erreurs simples:
# Ligne verticale avec un point au milieu
f + geom_pointrange()
# Barres d'erreur standard
f + geom_errorbar(width = 0.2) +
geom_point(size = 1.5)
Créer des barres d’erreur horizontales. Mettre dose
sur l’axe des y et len
sur l’axe des x. Précisez xmin
et xmax
.
# Barres d'erreur horizontales avec points moyens
# Modifier la couleur par groupes
ggplot(df.summary, aes(x = len, y = dose, xmin = len-sd, xmax = len+sd)) +
geom_point() +
geom_errorbarh(height=.2)
- Ajoutez des points jitter (représentant des points individuels), des dot plots et des violin plots. Pour cela, vous devez initialiser ggplot avec les données d’origine (
df
) et spécifier les donnéesdf.summary
dans la fonction de création de barres d’erreur, icigeom_pointrange()
.
# Combiner avec des points jitter
ggplot(df, aes(dose, len)) +
geom_jitter(position = position_jitter(0.2), color = "darkgray") +
geom_pointrange(aes(ymin = len-sd, ymax = len+sd),data = df.summary)
# Combiner avec des violin plots
ggplot(df, aes(dose, len)) +
geom_violin(color = "darkgray", trim = FALSE) +
geom_pointrange(aes(ymin = len-sd, ymax = len+sd), data = df.summary)
- Créez des line/bar plots basiques de la moyenne +/- erreur. Nous n’avons donc besoin que des données
df.summary
. :- Ajoutez les barres d’erreur inférieures et supérieures pour le line plot :
ymin = len-sd
etymax = len+sd
. - Ajoutez seulement les barres d’erreur supérieures pour le bar plot :
ymin = len
(au lieu delen-sd
) etymax = len+sd
.
- Ajoutez les barres d’erreur inférieures et supérieures pour le line plot :
Notez que, pour un line plot, vous devez toujours spécifier groupe = 1
dans aes()
, lorsque vous avez un groupe de ligne.
# (1) Line plot
ggplot(df.summary, aes(dose, len)) +
geom_line(aes(group = 1)) +
geom_errorbar( aes(ymin = len-sd, ymax = len+sd),width = 0.2) +
geom_point(size = 2)
# (2) Bar plot
ggplot(df.summary, aes(dose, len)) +
geom_col(fill = "lightgray", color = "black") +
geom_errorbar(aes(ymin = len, ymax = len+sd), width = 0.2)
Pour le line plot, vous pouvez traiter l’axe des abscisses comme une ligne numérique :
df.sum2 <- df.summary
df.sum2$dose <- as.numeric(df.sum2$dose)
ggplot(df.sum2, aes(dose, len)) +
geom_line() +
geom_errorbar( aes(ymin = len-sd, ymax = len+sd),width = 0.2) +
geom_point(size = 2)
- Bar plots et line plots + points jitter. Nous avons besoin des données originales
df
pour les points jitter et des donnéesdf.summary
pour les autres couchesgeom
.- Pour le line plot : Tout d’abord, ajoutez des points jitter, puis ajoutez des lignes + barres d’erreur + points moyens sur les points individuels.
- Pour le bar plot : Tout d’abord, ajoutez les barres, puis ajoutez des points jitter + barres d’erreur au dessus des barres.
# (1) Créer un line plot des moyennes +
# points jitter individuels + barres d'erreur
ggplot(df, aes(dose, len)) +
geom_jitter( position = position_jitter(0.2), color = "darkgray") +
geom_line(aes(group = 1), data = df.summary) +
geom_errorbar(
aes(ymin = len-sd, ymax = len+sd),
data = df.summary, width = 0.2) +
geom_point(data = df.summary, size = 2)
# (2) Bar plot des moyennes + points individuels + erreurs
ggplot(df, aes(dose, len)) +
geom_col(data = df.summary, fill = NA, color = "black") +
geom_jitter( position = position_jitter(0.2), color = "black") +
geom_errorbar( aes(ymin = len-sd, ymax = len+sd),
data = df.summary, width = 0.2)
Barres d’erreur groupées
Cas d’une variable continue (len
) et de deux variables de regroupement (dose
, supp
).
- Calculez les statistiques descriptives de
len
regroupées pardose
etsupp
:
library(dplyr)
df.summary2 <- df %>%
group_by(dose, supp) %>%
summarise(
sd = sd(len),
len = mean(len)
)
df.summary2
## # A tibble: 6 x 4
## # Groups: dose [3]
## dose supp sd len
## <fct> <fct> <dbl> <dbl>
## 1 0.5 OJ 4.46 13.2
## 2 0.5 VC 2.75 7.98
## 3 1 OJ 3.91 22.7
## 4 1 VC 2.52 16.8
## 5 2 OJ 2.66 26.1
## 6 2 VC 4.80 26.1
- Créer des diagrammes d’erreurs pour plusieurs groupes:
- pointrange coloré par groupes (supp)
- barres d’erreur standard + points moyens colorés par groupes (supp)
# (1) Pointrange : Ligne verticale avec un point au milieu
ggplot(df.summary2, aes(dose, len)) +
geom_pointrange(
aes(ymin = len-sd, ymax = len+sd, color = supp),
position = position_dodge(0.3)
)+
scale_color_manual(values = c("#00AFBB", "#E7B800"))
# (2) Barres d'erreur standard
ggplot(df.summary2, aes(dose, len)) +
geom_errorbar(
aes(ymin = len-sd, ymax = len+sd, color = supp),
position = position_dodge(0.3), width = 0.2
)+
geom_point(aes(color = supp), position = position_dodge(0.3)) +
scale_color_manual(values = c("#00AFBB", "#E7B800"))
- Créez des line/bar plots simples pour plusieurs groupes.
- Line plots : changer le type de ligne par groupe (
supp
) - Bar plots : changer la couleur de remplissage par groupes (
supp
)
- Line plots : changer le type de ligne par groupe (
# (1) Line plot + barres d'erreur
ggplot(df.summary2, aes(dose, len)) +
geom_line(aes(linetype = supp, group = supp))+
geom_point()+
geom_errorbar(
aes(ymin = len-sd, ymax = len+sd, group = supp),
width = 0.2
)
# (2) Bar plots + barres d'erreur supérieures.
ggplot(df.summary2, aes(dose, len)) +
geom_col(aes(fill = supp), position = position_dodge(0.8), width = 0.7)+
geom_errorbar(
aes(ymin = len, ymax = len+sd, group = supp),
width = 0.2, position = position_dodge(0.8)
)+
scale_fill_manual(values = c("grey80", "grey30"))
- Ajouter des points jitter:
# Line plots avec des points jitter
ggplot(df, aes(dose, len, color = supp)) +
geom_jitter(position = position_jitter(0.2)) +
geom_line(aes(group = supp),data = df.summary2) +
geom_errorbar(aes(ymin = len-sd, ymax = len+sd), data = df.summary2, width = 0.2)+
scale_color_manual(values = c("#00AFBB", "#E7B800")) +
theme(legend.position = "top")
# Bar plots + points jitter + barres d'erreur
ggplot(df, aes(dose, len, color = supp)) +
geom_col(data = df.summary2, position = position_dodge(0.8),
width = 0.7, fill = "white") +
geom_jitter(
position = position_jitterdodge(jitter.width = 0.2, dodge.width = 0.8)
) +
geom_errorbar(
aes(ymin = len-sd, ymax = len+sd), data = df.summary2,
width = 0.2, position = position_dodge(0.8)
)+
scale_color_manual(values = c("#00AFBB", "#E7B800")) +
theme(legend.position = "top")
Conclusion
Cet article décrit comment ajouter des barres d’erreur aux graphiques créés à l’aide du package ggplot2 dans R.
Version: English
No Comments