2010-08-12 53 views
5

我想在下图中更改医院的堆叠顺序,所以#1位于顶部,#4位于底部。ggplot:如何指定多个盒形图的垂直顺序?

的图表产生用

ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age") 

和我所需要的顶>向下为了什么是现在相反。我不确定为什么它现在是这样。 “医院”专栏是一个重要因素。

非常感谢!

alt text

回答

10

您有几种选择。最简单的就是加

p + scale_x_reverse() 

来的图。你也可以逆转的因素

relevel(survey$hospital, rev(levels(survey$hospital))) -> survey$hospital 

的水平或者,你可以决定你想手工盒以便与xlim()

p + xlim("Hospital #4","Hospital #3","Hospital #2","Hospital #1") 
+0

语义上说,我认为第二个选项是最好的。它将操纵数据的形式与绘图代码分开。 – 2010-08-12 09:49:13

+0

第一个给出错误: 错误:提供给scale_x_reverse的非连续变量。 另外:警告信息: 在Ops.factor(x): - 对因素 没有意义,但第三个工作正常。我没有让他们感到惊讶,因为如果我显示调查$医院,他们已经在自然秩序(1,2,3,4)已经被夷为平地。 – wishihadabettername 2010-08-12 12:39:55

+1

我认为'scale_x_reverse'只适用于连续值。 – 2012-07-13 23:34:16