ggplot2 barres d'erreur : Guide de d?marrage rapide - Logiciel R et visualisation de donn?es
Ce tutoriel R d?crit comment cr?er un graphique avec des barres d?erreur utilisant le logiciel R et le package ggplot2.
Il y a diff?rents types de barres d?erreur, lesquelles peuvent ?tre cr??es en utilisant les fonctions ci-dessous:
- geom_errorbar()
- geom_linerange()
- geom_pointrange()
- geom_crossbar()
- geom_errorbarh()
Ajouter des barres d?erreurs sur un graphique en barre et un graphique lin?aire
Pr?parer les donn?es
Le jeu de donn?es ToothGrowth est utilis?. Il d?crit l?effet de la Vitamine C sur la croissance des dents des porcs guin?ens. Trois doses de Vitamine C (0.5, 1 et 2 mg) avec chacune des m?thodes de livraison [orange juice (OJ) ou ascorbic acid (VC)] sont utilis?es:
library(ggplot2)
df <- ToothGrowth
df$dose <- as.factor(df$dose)
head(df)
## 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
## 5 6.4 VC 0.5
## 6 10.0 VC 0.5
Assurez-vous que la variable dose soit convertie en facteur en utilisant le script de R ci-dessus.
- len : Longueur des dents
- dose : Dose en milligrammes (0.5, 1, 2)
- supp : Type de suppl?ment (VC or OJ)
Dans les exemples ci-dessous, nous allons dessiner la moyenne de la longueur des dents dans chaque groupe. L??cart-type est utilis? comme barre d?erreurs sur le graphe.
Tout d?abord, la fonction ci-dessous sera utilis?e pour calculer la moyenne et l??cart type, pour la variable d?int?r?t, dans chaque groupe:
#+++++++++++++++++++++++++
# Fonction pour calculer la moyenne et l'?cart-type
# pour chaque groupe
#+++++++++++++++++++++++++
# data : une data frame
# varname: le nom de la colonne contenant la variable
# d'int?r?t
# groupnames : vecteur contenant les noms des colonnes ? utiliser
# comme des variables de grouping
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
R?sum? statistique des donn?es:
df2 <- data_summary(ToothGrowth, varname="len",
groupnames=c("supp", "dose"))
# Convertir dose en facteur
df2$dose=as.factor(df2$dose)
head(df2)
## supp dose len sd
## 1 OJ 0.5 13.23 4.459709
## 2 OJ 1 22.70 3.910953
## 3 OJ 2 26.06 2.655058
## 4 VC 0.5 7.98 2.746634
## 5 VC 1 16.77 2.515309
## 6 VC 2 26.14 4.797731
Barplot avec barre d?erreurs
La fonction geom_errorbar() est utilis?e:
library(ggplot2)
# Graphique par d?faut
p<- ggplot(df2, aes(x=dose, y=len, fill=supp)) +
geom_bar(stat="identity", color="black",
position=position_dodge()) +
geom_errorbar(aes(ymin=len-sd, ymax=len+sd), width=.2,
position=position_dodge(.9))
print(p)
# Graphique fini
p+labs(title="Tooth length per dose", x="Dose (mg)", y = "Length")+
theme_classic() +
scale_fill_manual(values=c('#999999','#E69F00'))
Notez que, vous pouvez choisir de garder uniquement les barres d?erreurs sup?rieures.
# Garder seulement les barres d'?rreurs sup?rieures
ggplot(df2, aes(x=dose, y=len, fill=supp)) +
geom_bar(stat="identity", color="black", position=position_dodge()) +
geom_errorbar(aes(ymin=len, ymax=len+sd), width=.2,
position=position_dodge(.9))
Lire plus sur ggplot2 et barplots : ggplot2 barplots
Graphique lin?aire avec barres d??rreurs
# Graphique par d?faut
p<- ggplot(df2, aes(x=dose, y=len, group=supp, color=supp)) +
geom_line() +
geom_point()+
geom_errorbar(aes(ymin=len-sd, ymax=len+sd), width=.2,
position=position_dodge(0.05))
print(p)
# Graphique fini
p+labs(title="Tooth length per dose", x="Dose (mg)", y = "Length")+
theme_classic() +
scale_color_manual(values=c('#999999','#E69F00'))
Vous pouvez aussi utiliser geom_pointrange() ou geom_linerange() au lieu d?utiliser la fonction geom_errorbar()
# Utiliser geom_pointrange
ggplot(df2, aes(x=dose, y=len, group=supp, color=supp)) +
geom_pointrange(aes(ymin=len-sd, ymax=len+sd))
# Utiliser geom_line()+geom_pointrange()
ggplot(df2, aes(x=dose, y=len, group=supp, color=supp)) +
geom_line()+
geom_pointrange(aes(ymin=len-sd, ymax=len+sd))
Lire plus sur ggplot2 et les graphiques lin?aires : ggplot2 graphique lin?aire
Dot plot avec lepoint de la moyenne et les barres d??rreurs
Les fonctions geom_dotplot() et stat_summary() sont utilis?es :
La moyenne +/- SD peut ?tre ajout?e comme un crossbar , une barre d?erreur ou un pointrange :
p <- ggplot(df, aes(x=dose, y=len)) +
geom_dotplot(binaxis='y', stackdir='center')
# utiliser geom_crossbar()
p + stat_summary(fun.data="mean_sdl", fun.args = list(mult=1),
geom="crossbar", width=0.5)
# Utiliser geom_errorbar()
p + stat_summary(fun.data=mean_sdl, fun.args = list(mult=1),
geom="errorbar", color="red", width=0.2) +
stat_summary(fun.y=mean, geom="point", color="red")
# Utiliser geom_pointrange()
p + stat_summary(fun.data=mean_sdl, fun.args = list(mult=1),
geom="pointrange", color="red")
Lire plus sur ggplot2 dot plots : ggplot2 dot plot
Infos
Cette analyse a ?t? faite en utilisant le logiciel R (ver. 3.2.4) et le package ggplot2 (ver. 2.1.0)
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!