Cómo hacer que dodge en geom_bar esté de acuerdo con dodge en geom_errorbar, geom_point

Tengo un conjunto de datos donde se realizan mediciones para diferentes grupos en diferentes días.

Quiero tener barras contiguas que representan las mediciones en los diferentes días para los diferentes grupos con los grupos de barras espaciadas según el día de medición con barras de error superpuestas a ellos.

Estoy teniendo problemas para hacer el esquivamiento engeom_bar de acuerdo con el dodge engeom_errorbar.

Aquí hay un simple código:

days          = data.frame(day=c(0,1,8,15));
groups        = data.frame(group=c("A","B","C","D", "E"), means=seq(0,1,length=5));


my_data       = merge(days, groups);


my_data$mid   = exp(my_data$means+rnorm(nrow(my_data), sd=0.25));
my_data$sigma = 0.1;


png(file="bar_and_errors_example.png", height=900, width=1200);
plot(ggplot(my_data, aes(x=day, weight=mid, ymin=mid-sigma, ymax=mid+sigma, fill=group)) +
     geom_bar      (position=position_dodge(width=0.5))                                   +
     geom_errorbar (position=position_dodge(width=0.5), colour="black")                   +
     geom_point    (position=position_dodge(width=0.5), aes(y=mid, colour=group)));
dev.off();

En la gráfica, los elementos de error aparecen con una desviación fija de su barra (lo siento, no se permiten gráficos para los novatos, incluso si ggplot2 es el tema).

Cuando binwidth se ajusta engeom_bar, la compensación no es fija y cambia de día a día.

Darse cuenta degeom_errorbar ygeom_point esquivar en tandem. Como lo consigogeom_bar de acuerdo con los otros dos?

Cualquier ayuda apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta