Rg中ggplot分组条形图中组内的条形顺序

时间:2015-04-21 13:25:01

标签: r ggplot2 bar-chart

当我在ggplot geom_bar中绘制数据时,我无法正确获取数据顺序

这是我的剧本。我不是一个自然的编码器,我正在努力获得R的支持,但它为我的生态学研究产生了如此好的结果。我知道我的剧本如果笨重但是它完成了工作(几乎!)

data<- read.csv(file.choose(), header=TRUE)
data
   Boat    Movement X.
1     A       Never 52
2     A      Rarely 19
3     A  Most trips  8
4     A Every trip  22
5     B       Never  0
6     B      Rarely 21
7     B  Most trips 14
8     B Every trip  64
9     C       Never 22
10    C      Rarely 33
11    C  Most trips 11
12    C Every trip  33
13    D       Never 22
14    D      Rarely 22
15    D  Most trips 11
16    D Every trip  44


a<-ggplot(data=data, aes(x=Boat, y=X., fill=Movement)) 
+ geom_bar(stat="identity", position=position_dodge()) + 
(xlab("Boat type")) + (ylab("% Movement")) + (theme(legend.position=c(.92, .9))) 
+ (scale_fill_manual(values=c("#D55E00", "#CC79A7", "#56B4E9", "#009E73")))
+ theme(axis.title.x = element_blank(), axis.text.x = element_text(size=15),
axis.title.y = element_text(size=25), axis.text.y = element_text(size=15)) 
+ scale_x_discrete(breaks=c("A","B","C", "D"),labels=c("L","P","K","O")) 
a

这是我一直在使用的代码片段,我得到的是条形图。麻烦的是我无法在我的4组中每个组中排序。他们按顺序出现&#39;每次旅行,大多数旅行,从不,很少&#39;即使我的数据被订购,也要在每个群组内进行排序&#39;从不,很少,大多数旅行,每次旅行都是如此。如何让我的绘图以文件中的顺序显示数据?

有人可以建议添加文本补丁来排序我的订单吗?

关于如何简化脚本的任何建议也将受到赞赏。

我使用了@Henrik建议的新代码

data$Movement <- factor(data$Movement, levels = c("Never", "Rarely",
"Most_trips", "Every_trip"))
ggplot(data=data, aes(x=Boat, y=X., fill=Movement)) 
+ geom_bar(stat="identity", position=position_dodge())

我仍然得到数据在条形图中显示错误的顺序。它发生在我的原始代码和更新的代码中。在这个output picture中,标有红色箭头的条形代表罕见数据,而不是Never数据,尽管传说中的内容,但它们的顺序错误,紫色条应该出现在绿松石之前,尽管这些数据不是在文件中以这种方式订购。

0 个答案:

没有答案