2011-04-18 109 views
4

我已經拿起了ggplot2書,但我很努力地理解數據如何通過圖層持續存在。ggplot2 - 引用匯總統計/圖層

例如,讓我們的數據集,並計算每個X的意思是:

thePlot = ggplot(myDF , aes_string(x = "IndepentVar" , y = "DependentVar")) 
thePlot = thePlot + stat_summary(fun.y = mean , geom = "point") 

我如何「訪問」的下一層的彙總統計?例如,可以說我想在數據集上繪製一條平滑線。這似乎工作:

thePlot = thePlot + stat_smooth(aes(group = 1) , method = "lm" , geom = "smooth" , se = FALSE) 

但讓我們說,我想進一步忽略一個特定的X值時,生成線?如何引用匯總數據集來表示排除特定的X?

更一般地說,數據如何在流過層時被引用?我總是限於最後的統計數據嗎?我可以參考原始數據集嗎?

+1

每一層,基本上由stat和geom組成,是獨立於其他層的。所以沒有「持久性」。如果您想在新圖層中重新使用匯總統計信息,則必須再次添加該彙總。 (雖然我不明白爲什麼你會這樣做)。如果要創建具有子集或不同數據的圖層,則需要來自data.frame中不同的數據框或不同的列。發佈一些示例數據並更好地描述你想要做什麼... – Andrie 2011-04-18 15:53:56

+0

你能通過示例中的stat_smooth來表達數據嗎?它是如何知道從myDF獲取數據的?到底什麼是「組= 1」?我如何知道aes支持「group」,它不在文檔中? – SFun28 2011-04-18 15:57:12

+0

另外,..var ..怎麼玩這個? – SFun28 2011-04-18 15:57:48

回答

4

這裏是如果他們沒有明確定義,在回答你的問題

  1. 在ggplot調用所定義的美學嘗試,習慣在所有後續層的默認值。這就是geom_smooth工作原因
  2. 您可以分別爲每個圖層指定data frameaesthetics。例如,如果你想在密謀geom_smooth排除的x一些值,你可以在geom_smooth調用內部指定subset = .(x != xvalues)

我可以提供更詳細的例子,如果你有具體問題。

希望這會有所幫助

+0

嗨Ramnath - 要求太多的兩三層例子,每個例子都表達一個數據概念(例如,美學,子集,分組,傳遞一個計算的變量一個geom等),並對每一層發生了什麼發表評論。越冗長越好(即保持統計數據和geoms分開,每個圖層明確地被調出等)。我認爲這對其他ggplot2新手會非常有幫助。另外,我不清楚子集是一種美學還是涉及數據框。也許這個例子會說明這一點。讓我知道,如果這是一個問題太模糊。 – SFun28 2011-04-18 19:42:14

+0

@ SFun。當然,我可以提供一些例子,更清楚地說明每個這些想法 – Ramnath 2011-04-18 22:47:01

+0

太棒了!也許你也可以解釋subset =。(x!= xvalues)意味着什麼。我搜索了這本書,但找不到那些信息。我明白雙重時期..瓦爾..但不是單一的時期。 – SFun28 2011-04-19 02:03:49