0

我想绘制误差线和带状阴影区域来标记误差线值的平均值:

在此处输入图像描述

由于某种原因,我不能让 geom_errorbar 和 geom_ribbon 一起工作。示例代码:

group <- c("Group 1", "Group 1", "Group 2", "Group 2", 
           "Group 3", "Group 3", "Group 4", "Group 4")
subgroup <- c("High", "Low", "High", "Low", "High", "Low", "High", "Low")
value <- c(0.1,-0.1,0.4,0.5,0.25,0.6,-0.25,0.05)
sd <- c(0.1,0.1,0.05,0.05,-0.05,-0.05,-0.01,-0.01)
value_avg <- c(0.33,0.33,0.33,0.33, 0.33, 0.33,0.33,0.33)
sd_avg <- c(0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07)

df <- data.frame(group, subgroup,value,sd)

#Plot
ggplot(df, aes(group, value)) +
  geom_errorbar(
    aes(ymin = value-sd, ymax = value+sd, color = subgroup),
    position = position_dodge(0.3), width = 0.3
  )+
  geom_point(aes(color = subgroup), position = position_dodge(0.3))+
  geom_ribbon(aes(ymin = value_avg-sd_avg, ymax = value_avg+sd_avg), 
              fill = "grey70") 

编辑 1:显示 Stefan 的建议:

geom_ribbon(aes(ymin = value_avg-sd_avg, ymax = value_avg+sd_avg, group = 1)

在此处输入图像描述

4

0 回答 0