我有一個數據集,我想有一個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軸分組在一起(並按降序排列)。 (所有褐色條紋在一起,以淺藍色和「分層方式」等等)。
我該如何實現這一目標?我需要多次訂購嗎?任何想法?
您是否閱讀過'?reorder'的文檔?具體來說,你期望''category'的_averaging_值的子集有什麼意義? – joran
謝謝joram。哦,所以重新排序通常需要一個數字變量。但是當你有上述情況時,推薦的方法是什麼? – eastafri
facet_grid不會產生所需的結果。隨着更多類別出現,它也過於「冗長」。我只是喜歡一個解決方案來排序/重新排列在一個圖中的酒吧。 – eastafri