2017-04-19 184 views
1

我試圖繪製連續Y軸值的分類X軸變量(然後翻轉它們)在ggplot2,但我的Y軸值不是展示。ggplot2翻轉Y軸不顯示正確設置的限制

這是把我的數據:

       AIC.means AIC.lci AIC.uci 
Sparse Dual Stream   -4632.137 -4655.353 -4608.922 
Heterogeneous Dual Stream A -4627.653 -4650.866 -4604.439 
Heterogeneous Dual Stream B -4622.063 -4645.194 -4598.932 
Dense Dual Stream    -4616.507 -4639.633 -4593.381 
Radical Storage    -4615.934 -4639.052 -4592.817 
Radical Sparse Comp.   -4601.292 -4624.428 -4578.156 
Radical Heterogeneous Comp. B -4600.650 -4623.785 -4577.515 
Radical Dense Comp.   -4589.490 -4612.632 -4566.348 
Radical Heterogeneous Comp. A -4587.993 -4611.141 -4564.845 

這是劇情和我公司生產的情節的代碼。

ggplot(AIC.plotdata, aes(x=row.names(AIC.plotdata), y=AIC.means)) + 
    geom_bar(aes(), stat="identity") + 
    scale_y_continuous(limits = c(-4700, -4500)) + 
    coord_flip() 

enter image description here

我設置分以下和最大上述y軸範圍,如下所示。所以不存在y軸標籤不能歸因於它們脫離軸範圍。

summary(AIC.plotdata$AIC.means) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    -4632 -4622 -4616 -4610 -4601 -4588 

這就是我想要的ggplot2獲得,但獲得使用lattice(對AIC值出現在排序的順序,我還需要弄清楚的ggplot)。

enter image description here

我會感激你的幫助!

+0

geom_bar想要一個在你的極限零值範圍來錨定它的底部 – Nate

+0

謝謝!考慮到數據的有趣差異介於-4700和-4500之間,是否有辦法解決這個約束?這些值代表模型懲罰,所以懲罰越低模型越好,所以翻轉符號沒有意義。 –

+0

在'geom_bar'字詞中嘗試不用'aes()' - 這可能告訴ggplot沒有美學,因此是空白圖表。 –

回答

1

如何使用geom_segement並將您的數據轉移到ggplot調用中?看到這個問題類似的東西ggplot2: Setting geom_bar baseline to 1 instead of zero

ggplot(df) + 
    geom_segment(aes(x=rownames, xend=rownames, y=-4700, yend=AIC.means), size = 10) + 
    scale_y_continuous(limits = c(-4700, -4500)) + 
    coord_flip() 

enter image description here

數據:

df <- structure(list(rownames = c("Sparse Dual Stream", "Heterogeneous Dual Stream A", 
"Heterogeneous Dual Stream B", "Dense Dual Stream", "Radical Storage", 
"Radical Sparse Comp.", "Radical Heterogeneous Comp. B", "Radical Dense Comp.", 
"Radical Heterogeneous Comp. A"), AIC.means = c(-4632.137, -4627.653, 
-4622.063, -4616.507, -4615.934, -4601.292, -4600.65, -4589.49, 
-4587.993), AIC.lci = c(-4655.353, -4650.866, -4645.194, -4639.633, 
-4639.052, -4624.428, -4623.785, -4612.632, -4611.141), AIC.uci = c(-4608.922, 
-4604.439, -4598.932, -4593.381, -4592.817, -4578.156, -4577.515, 
-4566.348, -4564.845)), .Names = c("rownames", "AIC.means", "AIC.lci", 
"AIC.uci"), row.names = c(NA, -9L), class = "data.frame") 
+0

這正是我所需要的。非常感謝! –