How to shift the x-axis position of two geometers relative to each other

I have a ggplot graph. I need to shift error bars relative to jittery points. My code is:

 data("cabbages", package = "MASS") require("ggplot2") pos_1 <- position_jitterdodge( jitter.width = 0.25, jitter.height = 0, dodge.width = 0.9 ) gg <- ggplot(data = cabbages, aes( x = Cult, y = HeadWt, colour = Cult, fill = Cult )) + geom_jitter(alpha = 0.4, position = pos_1) + stat_summary(fun.y = "mean", geom = "point", size = 3) + stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.05, lwd = 1, fun.args = list(conf.int = 0.95) ) + theme_bw() print(gg) 

Current result:

enter image description here

And I need something like this:

enter image description here

+6
source share
1 answer

You can add an offset to x in aes in each stat_summary ( aes(x = as.numeric(Cult) + 0.2) ):

 ggplot(data = cabbages, aes(x = Cult, y = HeadWt, colour = Cult, fill = Cult)) + geom_jitter(alpha = 0.4, position = pos_1) + stat_summary(aes(x = as.numeric(Cult) + 0.2), fun.y = "mean", geom = "point", size = 3) + stat_summary(aes(x = as.numeric(Cult) + 0.2), fun.data = "mean_cl_normal", geom = "errorbar", width = 0.05, lwd = 1, fun.args = list(conf.int = 0.95)) + theme_bw() 

enter image description here

+5
source

Source: https://habr.com/ru/post/1015276/


All Articles