2015-11-29 1 views
1

Dans de nombreux cas, nous devons démontrer l'erreur standard. En ggplot2, nous pouvons le faire en utilisant la fonction geom_errorbar. Je trouve que lorsque la variable x est du type Date, ggplot2 n'a pas pu tracer complètement la barre d'erreur. Voir le script R ci-dessous pour plus d'informations.Utilisation de ggplot2 pour tracer geom_errorbar pour Date dans R

library(gcookbook) # For the data set 
# Take a subset of the cabbage_exp data for this example 
ce <- subset(cabbage_exp, Cultivar == "c39") 
# With a line graph 

p1 = ggplot(ce, aes(x=Date, y=Weight)) + 
    geom_line(aes(group=1)) + 
    geom_point(size=4) + 
    geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se), width=.2) 

ce$Date = as.Date(c('01/01/2001', '01/01/2002', '01/01/2003'), "%m/%d/%Y") 

p2 = ggplot(ce, aes(x=Date, y=Weight)) + 
    geom_line(aes(group=1)) + 
    geom_point(size=4) + 
    geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se), width=.2) 

p1 
p2 

enter image description here

+5

Je vois encore errorbars, seule la ligne horizontale à la fin est manquante. C'est parce que la largeur d'une journée est trop petite pour être vue. Essayez 'width = 10' – RHA

+1

@RHA a raison. Pour obtenir la même largeur relative des barres d'erreur (20% de la distance entre les points de données - si équidistantes), essayez: 'width = .2 * ((max (ce $ Date) -min (ce $ Date))/length (ce $ Date) –

Répondre

1

de directionsRHA suivant simplement (code ci-dessous). @RHA, n'hésitez pas à copier ma réponse dans un nouveau car c'est plus à vous que c'est à moi.

geom_errorbar of width

# install.packages("gcookbook", dependencies = TRUE) 
library(gcookbook) # For the data set 
# Take a subset of the cabbage_exp data for this example 
ce <- subset(cabbage_exp, Cultivar == "c39") 
# With a line graph 

# install.packages("ggplot2", dependencies = TRUE) 
require(ggplot2) 

ce$Date = as.Date(c('01/01/2001', '01/01/2002', '01/01/2003'), "%m/%d/%Y") 

(p2 = ggplot(ce, aes(x=Date, y=Weight)) + 
    geom_line(aes(group=1)) + 
    geom_point(size=4) + 
    geom_errorbar(aes(ymin = Weight- se, ymax= Weight + se), width=45)))