在stat_summary中使用position_dodge获取均值和置信区间?

use*_*829 4 r ggplot2

我正在尝试显示两组数据.我正在使用该ggplot2包来绘制数据图并使用它stat_summary()来获得数据图中的点估计(平均值)和90%CI.我想要的是平均值和置信区间结构在表示数据分布的点的右侧.目前,stat_summary()只会将均值和CI强加于分布之上.

以下是我正在使用的数据示例:

set.seed(9909)
Subjects <- 1:100
values <- c(rnorm(n = 50, mean = 30, sd = 5), rnorm(n = 50, mean = 35, sd = 8))
data <- cbind(Subjects, values)
group1 <- rep("group1", 50)
group2 <- rep("group2", 50)
group <- c(group1, group2)
data <- data.frame(data, group)
data
Run Code Online (Sandbox Code Playgroud)

这就是我当前的ggplot2代码的样子(分布为平均点和90%CI叠加在每个组的顶部):

ggplot(data, aes(x = group, y = values, group = 1)) +  
geom_point() + 
stat_summary(fun.y = "mean", color = "red", size = 5, geom = "point") +
stat_summary(fun.data = "mean_cl_normal", color = "red", size = 2, geom = "errorbar", width = 0, fun.args = list(conf.int = 0.9)) + theme_bw()
Run Code Online (Sandbox Code Playgroud)

是否有可能将position_dodge的平均值和置信区间置于各自组的右侧?

Hub*_*rtL 6

你可以使用position_nudge:

ggplot(data, aes(x = group, y = values, group = 1)) +  
  geom_point() + 
  stat_summary(fun.y = "mean", color = "red", size = 5, geom = "point",
               position=position_nudge(x = 0.1, y = 0)) +
  stat_summary(fun.data = "mean_cl_normal", color = "red", size = 2, 
               geom = "errorbar", width = 0, fun.args = list(conf.int = 0.9),
               position=position_nudge(x = 0.1, y = 0)) + 
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述