ggplot:根据条形图中的名称更改堆积条形的顺序

时间:2013-04-09 21:41:49

标签: r ggplot2 bar-chart

ggplot(data,aes(x=ab,y=Freq/total,fill=Result))+
      geom_bar(stat="identity")+
     theme(strip.text.x = element_text(size=8, angle=0),
      strip.background = element_rect(colour="black", fill="#CCCCFF"))+
    ggtitle("H.somnus SIR %")+ylab("% SIR")+
    scale_y_continuous(labels=percent,breaks=seq(0,1,.1))+
    theme_set(theme_barplot())

以上是我正在使用的代码。 data是我已经融化的表,但是'result'列是按字母顺序排列的,str(result)是4个级别的因子:如A,B,C,D。我希望显示底部最大条形的条形图,顺序为D,B,C,A

由于

1 个答案:

答案 0 :(得分:2)

这是一个黑客修复,但它的工作原理。当使用stat =“identity”时,ggplot将按照它遇到的顺序绘制堆积的条形图。要按照D,B,C,A的顺序获取堆栈,请重新排序data.frame,如下所示:

data <- data[c(data$Result == "D",
               data$Result == "B",
               data$Result == "C",
               data$Result == "A"),]

ggplot2帮助文件中的条目在这方面可能会更好。