geom_errorbar 和 geom_facet

geom_errorbar and geom_facet

以下代码无法正确显示错误栏:

rf.imp<- read.csv("importances_byaggregations.csv",head=TRUE,sep=",") #Changes when handling the data

rf.imp$flux <- as.character(rf.imp$flux)
rf.imp$flux<-factor(rf.imp$flux,levels=unique(rf.imp$flux))
rf.imp$aggregation <- as.character(rf.imp$aggregation)
rf.imp$aggregation<-factor(rf.imp$aggregation,levels=unique(rf.imp$aggregation))

cbbPalette <- c("#F0E442", "#CC79A7","#E69F00","#56B4E9", "#009E73") # Mimicking Python colors

rf.imp$rel.influence<-rf.imp$rel.influence*100
rf.imp$SD<-rf.imp$SD*100

limits <- aes(ymax = rf.imp$rel.influence + rf.imp$SD, ymin=rf.imp$rel.influence - rf.imp$SD)

ggplot(rf.imp, aes(variable,rel.influence,fill=variable)) + 
  geom_bar(stat="identity",position="dodge") +  scale_fill_manual(values=cbbPalette)+
  theme_bw(base_size = 32, base_family = "Helvetica")+
  xlab("")+
  ylab("Variable importance (%)")+
  facet_grid(aggregation~flux)+
  geom_errorbar(limits, width=0.5)+
  scale_y_continuous(limits=c(-10,90))+
  theme(legend.position="none",
        strip.text.x = element_blank(),
        strip.text.y = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        strip.background = element_blank(),
        panel.border = element_rect(colour = "black"),
        panel.border = element_rect(colour = "black", fill=NA, size=1))

我想得到下图,但是把geom_facets调换了

但是,我得到这样的结果:

我是不是做错了什么?

谢谢!

你的最小示例有点太长,我无法深入研究,但我强烈怀疑你的问题来自于在你的错误栏限制中使用绝对 (rf.imp$...) 引用。如果你使用

geom_errorbar(aes(ymax=rel.influence+SD,
                  ymin=rel.influence-SD), width=0.5)

我认为这会解决问题。