【问题标题】:Center error bars (geom_errorbar) horizontally on bars (geom_bar)在条 (geom_bar) 上水平居中误差条 (geom_errorbar)
【发布时间】:2013-04-01 15:45:45
【问题描述】:

如何将误差线定位在适当颜色条的中心?

df1 <- data.frame(
  supp = c("OJ","OJ","OJ","VC","VC","VC"),
  dose = c(0.5,1,2,0.5,1,2),
  len = c(13.23,22.7,26.06,7.98,16.77,26.14),
  se = c(1.41,1.27,0.84,0.87,0.8,1.52)
)

df1$dose <- factor(df1$dose)
ggplot(df1, aes(x=dose, y=len, fill=supp)) +      
geom_bar(stat="identity", position=position_dodge()) +  
scale_fill_manual(name = "", values = c("deepskyblue1", "green")) +
geom_errorbar(data = df1[1:3,], aes(ymin=len-se, ymax=len+se), width=.4, colour=c("deepskyblue1"), position=position_dodge(.9)) +
geom_errorbar(data = df1[4:6,], aes(ymin=len-se, ymax=len+se), width=.4, colour=c("green"), position=position_dodge(.9))

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    由于误差线的数据位于相同的数据框中,因此您无需在 geom_errorbar() 中提供参数 data=,也无需两次调用 geom_errorbar()

    您应该在aes() 中提供geom_errorbar() 中的yminymax 值,以及aes() 中的color=supp 将确保误差条根据supp 值着色。要获得与条形相同的颜色,请添加具有相同颜色名称的 scale_color_manual()。使用参数position=position_dodge(0.9),您可以在条形中心获得错误条。

    ggplot(df1, aes(x=dose, y=len, fill=supp)) +      
      geom_bar(stat="identity", position=position_dodge()) +  
      scale_fill_manual(name = "", values = c("deepskyblue1", "green")) +
      geom_errorbar(aes(ymin=len-se, ymax=len+se,color=supp), width=.4,
           position=position_dodge(.9))+
      scale_color_manual(name = "", values = c("deepskyblue1", "green"))
    

    【讨论】:

      猜你喜欢
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多