1

在此处输入图像描述

a <- structure(list(
  X1 = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L), 
                  .Label = c("V1", "V2", "V3", "V4", "V5", "V6", "V7", "V8"), class = "factor"), 
   X2 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,  2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), 
                    .Label = c("A", "B", "C"), class = "factor"), 
  value = c(0.03508924, 0.03054929, 0.03820896, 0.18207091, 0.25985142, 0.03909991, 0.03079736, 
            0.41436334, 0.02957787, 0.03113289, 0.03239794, 0.1691519, 0.16368845, 0.0287741, 0.02443448, 
            0.33474091, 0.03283068, 0.02668754, 0.03597605, 0.17098721, 0.23048966, 0.0385765, 0.02597068, 0.36917749), 
   se = c(0.003064016, 0.003189752, 0.003301929, 0.006415592, 0.00825635, 0.003479607, 
          0.003195332, 0.008754099, 0.005594554, 0.006840959, 0.006098068, 0.012790908, 0.014176414, 
          0.006249045, 0.005659445, 0.018284739, 0.005051873, 0.004719352, 0.005487301, 0.011454206, 
          0.01290797, 0.005884275, 0.004738851, 0.014075813)), 
  .Names = c("X1", "X2", "value", "se"), class = "data.frame", row.names = c(NA, -24L)) 

我正在绘制上述数据(保存在数据集“a”中),但我无法让置信区间位于组图的中间。到目前为止,我的尝试只设法将线条放在每个侧面栏,而不是像 geom_errorbar 帮助文件那样在中间。我试图操纵闪避参数,但它只会让它变得更糟。图表需要保持翻转,在下面的代码中我使用了 geom_linerange 但 geom_errorbar 会更好。我还没有完全设法做的另一件事是将比例更改为整数(不增加原始表)。

我在 a<-a[1:16,] (前两组)上使用了下面的代码。当我在整个表上使用相同的代码时,置信区间的结果会更差。有人能帮忙吗?提前谢谢了。

limits <- aes(ymax = value + se, ymin=value - se)
 p<-ggplot(data = a, aes(x = X1, y =value))+   
    geom_bar(aes(fill=X2),position = "dodge") +    
    scale_x_discrete(name="")+
    scale_fill_manual(values=c("grey80","black","red"))+
    scale_y_continuous(name="%")+   
    theme(axis.text.y = element_text(face='bold'),
          legend.position ="top",
          legend.title=element_blank())+   
     coord_flip()
p + geom_linerange(limits)
4

1 回答 1

2

尝试这个 ,

p<-ggplot(data = df, aes(x = X1, y =value,fill= X2))+   
    geom_bar(position=position_dodge()) +
    geom_errorbar(aes(ymax = value + 2* se, ymin=value,colour = X2),position=position_dodge(.9))



p <- p + scale_x_discrete(name="")+
   scale_fill_manual(values=c("grey80","black","red"))+
   scale_y_continuous(name="%")+   
   theme(axis.text.y = element_text(face='bold'),
         legend.position ="top",
         legend.title=element_blank())+   
   coord_flip()

在此处输入图像描述

于 2012-11-29T15:34:56.800 回答