[英]R ggplot2 stacked bar fills one bar in wrong order
我正在制作5條堆積的條形圖。 填充順序按預期的5個條形中的3個進行排序,但在第3個條形中,堆疊的段以錯誤的順序顯示。 我不允許發布圖像,但是在第三個欄中,應該在該欄底部的細分顯示在頂部。
這是一個簡化示例的代碼。 在示例中,x和fill變量的每種組合只有一個觀察值,但是我仍然使用stat_summary函數,因為我實際上想將代碼用於具有數千個觀察值的數據幀。
此代碼有什么問題,如何使所有條形圖以正確的順序顯示填充?
library(ggplot2)
str(d2)
d2
ggplot(data=d2, aes(x=x,y=y, fill=f) ) + stat_summary(fun.y="mean", geom="bar", position="stack")
R.version
packageVersion("ggplot2")
> str(d2)
'data.frame': 20 obs. of 3 variables:
$ x: Factor w/ 5 levels "1CP","2PD","3AM",..: 1 1 1 1 2 2 2 2 3 3 ...
$ y: num 0.3456 0.0699 0.6659 0.7358 0.3456 ...
$ f: Ord.factor w/ 4 levels "N1"<"N2"<"N3"<..: 1 2 3 4 1 2 3 4 1 2 ...
> d2
x y f
1 1CP 0.34556309 N1
20021 1CP 0.06985134 N2
25026 1CP 0.66592260 N3
30031 1CP 0.73577575 N4
2 2PD 0.34556309 N1
20022 2PD 2.37410008 N2
25027 2PD 0.74289404 N3
30032 2PD 0.35221355 N4
3 3AM 0.34556309 N1
20023 3AM 0.80074871 N2
25028 3AM 0.62036885 N3
30033 3AM 0.09105373 N4
4 4AP 0.34556309 N1
20024 4AP 0.35911943 N2
25029 4AP 0.12228402 N3
30034 4AP 0.18667499 N4
5 ALL 0.34556309 N1
20025 ALL 0.97839760 N2
25030 ALL 0.58666595 N3
30035 ALL 0.36948221 N4
> ggplot(data=d2, aes(x=x,y=y, fill=f) ) + stat_summary(fun.y="mean", geom="bar", position="stack")
> R.version
_
platform i386-pc-mingw32
arch i386
os mingw32
system i386, mingw32
status Patched
major 2
minor 15.1
year 2012
month 07
day 04
svn rev 59723
language R
version.string R version 2.15.1 Patched (2012-07-04 r59723)
nickname Roasted Marshmallows
> packageVersion("ggplot2")
[1] ‘0.9.1’
>
我還向提供此解決方案的ggplot2
的作者報告了此問題,將其作為潛在的錯誤:
我不確定這是否是錯誤-但是您可以通過向ggplot函數調用中添加order=f
來獲得所需的行為。 我不確定為什么它沒有默認設置。
建議添加order=f
解決了該問題!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.