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)


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

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!





Cette page a été vue 20005 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons