Largura das barras de erro no ggplot2
Eu tenho alguns dados com erros padrão associados e gostaria de exibi-los com barras de erro. É o que eu tenho:
# generate some data
hod <- data.frame(h = c(1:24,1:24,1:24), mean = 1:(24*3) + runif(24*3, 0, 5),ci = runif(24*3, 0, 2), t = c(rep("a",24),rep("b",24),rep("c",24)))
pd <- position_dodge(0.3)
dayplot <- ggplot(hod, aes(x=h, y=mean, colour=as.factor(t),group=as.factor(t))) +
geom_line(position=pd, size=1) +
geom_errorbar(aes(ymin=mean-ci, ymax=mean+ci),
width=1,
size=0.5,
position=pd) +
geom_point(position=pd, shape=21, size=1, fill="white") +
scale_x_continuous(limits=c(-0.5,23.5),
breaks=c(0:8*3),
labels=ifelse(
c(0:8*3) < 10,
paste('0',c(0:8*3),':00',sep=''),
paste(c(0:8*3),':00',sep='')
)
) +
xlab("Hour of day") + ylab(ylabel) + labs(title = varlabels[var]) +
theme_minimal() +
theme(plot.margin = unit(c(1,0,1,1), "cm"),
axis.title.x = element_text(vjust=-1),
axis.title.y = element_text(angle=90, vjust=0),
legend.margin = unit(c(0), "cm"),
legend.key.height = unit(c(0.9), "cm"),
panel.grid.major = element_line(colour=rgb(0.87,0.87,0.87)),
panel.grid.minor = element_blank(),
plot.background = element_rect(fill = rgb(0.97,0.97,0.97), linetype=0)
)
A única coisa de interesse é provavelmente:
geom_errorbar(aes(ymin=mean-ci, ymax=mean+ci),
width=1,
size=0.5,
position=pd)
Dá:
Agora, quando eu agrupo os dados por uma variável de fator (as.factor(t)
), Eu recebo várias linhas em vez de uma, que é o que eu quero, MAS, como você pode ver, as linhas horizontais nas barras de erro são mais estreitas, e eu não consigo entender o porquê. Eu tentei mudar e até mesmo tirar owidth
esize
atributo degeom_errorbar
, mas nada acontece. Existe uma maneira de ter a mesma largura das linhas horizontais para cada gráfico, independentemente dos dados? Quero dizer, por que isso deveria variar? Ou essa largura traz alguma informação?