2010-08-12 48 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