在geom_bar position = fill中排序条

时间:2014-07-12 13:18:53

标签: r ggplot2

我试图为我的问题找到一个解决方案,但我做不到。也许,对我们这些人来说,我的问题很容易。但是,我需要支持。我会很乐意帮助你。

我为两个因素制作了一个ggplot:HGU_typecycle_complexity来显示它们的比例:

我用过:

g2<-ggplot(t,aes(x=HGU_type,fill = cycle_complexity))+ geom_bar(position="fill") 
g2

The graph, I get looks as follow:

我希望x轴上的条形顺序增加...第一个带“点头”的栏,第二个带“摇动”,第三个带“后退”......

我尝试了一切,但找不到解决方案。

我很感激提示

1 个答案:

答案 0 :(得分:1)

正如@Japp指出的那样,最好在问题中加入一个可重复性最小的例子。我创建了这个数据集

#sample data
set.seed(18)
t<-data.frame(
    HGU_type=sample(c("jerk","nod","pro","retr","shake","tilt","turn"), 50, replace=T, prob=sample(7)),
    cycle_complexity=sample(c("multiple", "single"), 50, replace=T)
)

和原作一样的情节是由

创建的
ggplot(t,aes(x=HGU_type,fill = cycle_complexity))+ geom_bar(position="fill")

enter image description here

要更改条形图的绘制顺序,需要更改用于x轴的系数级别。 reorder()函数可以根据不同的属性轻松对因子进行重新排序。在这里,我们将根据&#34;倍数&#34;的比例重新订购。在每组中

t$HGU2<-reorder(t$HGU_type, t$cycle_complexity,FUN=function(x) mean(as.numeric(x)))

然后我们可以用

绘图
ggplot(t,aes(x=HGU2,fill = cycle_complexity))+ geom_bar(position="fill")

获取

enter image description here