2011-04-21 42 views
2

是否可以通過stat_summary使用計算的y重新排序x值? 我認爲這應該工作:ggplot2 - 可能通過計算y(stat_summary)的值重新排序x的值?

stat_summary(aes(x = reorder(XVarName , ..y..))) 

,但我得到了以下錯誤: 「錯誤:stat_summary需要以下缺失的美學:X」

+1

沒有,因爲那樣的話'stat_summary'不獲得一個x值作爲輸入。 – hadley 2011-04-21 03:15:27

+3

一般來說,當它變得像這樣複雜時,我已經有了更好的(讀取:更高效的)運氣來將我的數據轉換到'ggplot'本身之外。 – Chase 2011-04-21 03:38:36

+0

@hadley - 你能解釋一下嗎?我設置了x =,那爲什麼不是輸入? – SFun28 2011-04-21 12:57:12

回答

5

我已經看到了你的帖子,我認爲這可能對你有所幫助。當生成一個繪圖時,總是將它保存到一個唯一的變量中

創建您的繪圖時不考慮排序,直到您感覺舒適只是創建繪圖。然後,按照ggplot對象的結構工作,以更好地理解其中的內容。然後,找出你應該分類的東西。

plot1 <- ggplot() + ... 

您可以通過鍵入指出,已將其保存到對象名稱推地塊視口:

plot1 

創建ggplot對象(或變量)可以讓你有機會審查情節的結構。順便說一句,這可以回答你迄今爲止所遇到的一些問題。

str(plot1) 

它仍然是相當簡單的重新排序情節您保存後,作爲一個變量/對象,儘管有稍長的名字:

plot$data$variable_tobe_recoded <- factor(...) 
+0

偉大的建議!我沒有想過用str(plot),我打電話給summary(plot),但是這並沒有給我太多的信息。 – SFun28 2011-04-21 16:17:12

+1

當我第一次開始使用ggplot時,我有類似的問題「搞清楚」。我沒有在這裏添加的東西,我應該有的是,你應該總結你的數據,然後再將其輸入到ggplot中。哈德利創造了另外兩個包,即重塑和plyr,使這些簡單(甚至複雜)的操作變得容易。如果你不熟悉這兩個軟件包 - 這應該是未來的目標。熔化(),鑄造(),重塑(),ddply() – 2011-04-21 18:46:53

+0

讚賞的建議!將研究這些功能。 – SFun28 2011-04-22 04:06:46