2011-04-18 110 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