막대 막대가 5 개인 막대 그래프를 만들고 있습니다. 채우기는 5 개 막대 중 3 개에 대해 예상대로 정렬되지만 3 번째 막대에서는 누적 세그먼트가 잘못된 순서로 표시됩니다. 이미지를 게시 할 수 없지만 세 번째 막대에는 막대의 맨 아래에 있어야하는 세그먼트가 맨 위에 표시됩니다.R ggplot2 스택 막대가 막대 하나를 잘못된 순서로 채 웁니다.
다음은 간단한 예제 코드입니다. 이 예제에서 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’
>