重複の可能性:
ggplot2棒グラフの注文バー
データセットがあり、変数の 1 つの割合を示す ggplot 棒グラフを作成し、別の変数に基づいて棒を並べ替えたり並べ替えたりしたいと考えています。以下はデータセットの例です。
grouping,category,domain
6,W,ced0.11
1,none,ced1.1
2,none,ced1.1
3,Z,ced1.5
2,Z,ced1.7
3,Z,ced1.3
3,none,ced1.6
2,none,ced1.1
1,Z,ced1.1
4,none,ced0.8
4,W,ced0.6
4,W,ced0.6
2,Z,ced1.5
2,W,ced1.6
4,Y,ced0.16
3,Z,ced1.5
4,Y,ced0.15
4,W,ced0.15
4,Y,ced0.24
6,W,ced0.8
4,Y,ced0.4
4,none,ced0.19
4,W,ced0.5
4,W,ced0.10
4,W,ced0.9
4,W,ced0.3
1,Z,ced1.6
4,W,ced0.9
4,W,ced0.15
1,Z,ced1.1
4,Y,ced0.19
6,W,ced0.4
4,W,ced0.16
4,W,ced0.6
4,W,ced0.5
2,Z,ced1.7
4,W,ced0.9
4,Y,ced0.1
4,W,ced0.2
4,Y,ced0.21
2,W,ced0.3
4,Y,ced0.21
4,W,ced0.10
1,Z,ced1.2
4,Y,ced0.16
1,Z,ced1.2
1,Z,ced1.2
5,W,ced0.23
4,Y,ced0.1
棒グラフをインポートして表示するための以下のコード。
library(ggplot2)
ex1.dta <- read.csv("../../Datasets/ex1.txt",sep=",",header=TRUE)
#sort the data frame
ex1.dta2 <- transform(ex1.dta,domain=reorder(domain,category))
ggplot(ex1.dta2,aes(domain,fill=category)) +
geom_bar(position="fill") +
scale_y_continuous(name="Proportion") +
scale_x_discrete(name="domains") +
scale_fill_manual(values=c("#841108","#16a4e9","#a4a42a","#eb96ed","grey"),name="category") +
theme_bw() +
opts(
axis.text.x=theme_text(angle=-90,hjust=0),
axis.line = theme_segment(colour = "black"),
panel.grid.major = theme_blank(),
panel.grid.minor = theme_blank(),
panel.border = theme_blank()) +
geom_vline(xintercept = 0)
変換を使用してデータ フレームを並べ替えると、警告が表示され、並べ替えや並べ替えが実行されません。私が本当に望むのは、各カテゴリのバーが x 軸に沿ってグループ化されるように (そして降順で) 並べ替えることです。(すべての茶色のバーが一緒に、水色のバーが一緒に、「階層的な方法」で、など。)
どうすればそれを達成できますか?複数注文する必要はありますか?何か案が?