2016-11-13 93 views
1

下面的代碼不能正常顯示誤差線:geom_errorbar和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)) 

我想obtaine如下圖,但swaped的geom_facets。

enter image description here

不過,我得到這樣的:

enter image description here

難道我做錯了什麼?

謝謝!

+1

您可以製作一個最低重複性的例子嗎?意思是拿出顏色。標籤等以及重新編碼,並將代碼創建爲您期望格式的小數據集(例如,創建隨機值)。 – Elin

+0

你能告訴我們「不恰當」的意思嗎?通過發佈原始輸出和翻轉版本的圖像?你能簡化你的例子嗎? –

+0

我已根據您的建議編輯帖子 – eFF

回答

1

對於我來說,你最小的例子有點太長了,但我強烈懷疑你的問題來自在錯誤欄限制中使用絕對引用(rf.imp$...)。如果您使用

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

我認爲這將解決問題。

+0

已修復!非常感謝 – eFF

相關問題