【问题标题】:ggplot2 - referecing summary statistics / layersggplot2 - 引用汇总统计/层
【发布时间】:2023-03-24 08:32:01
【问题描述】:

我拿起了 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 的情况?

更一般地说,数据在流经层时如何引用?我总是局限于最后的统计数据吗?我可以参考原始数据集吗?

【问题讨论】:

  • 每一层,基本上由一个 stat 和一个 geom 组成,独立于其他层。所以没有“坚持”。如果您想在新图层中重复使用汇总统计信息,则必须再次添加该汇总。 (不过,我想不出你为什么要这样做)。如果要创建具有子集或不同数据的图层,则需要来自不同的 data.frame 或 data.frame 中的不同列。发布一些示例数据并更好地描述您想要做什么......
  • 你能告诉我例子中用 stat_smooth 表示什么数据吗?它是如何知道从 myDF 中获取数据的? “组=1”到底是什么?我怎么会知道 aes 支持“组”,它不在文档中?
  • 另外,..var.. 是如何发挥作用的?
  • 此外,文档说 stat_smooth 需要 X/Y aes,但我没有提供这些,它似乎仍然有效。
  • 如果没有持久性,那么“统计产生的新变量”是什么意思?我在哪里可以使用这些新变量??

标签: r ggplot2


【解决方案1】:

这里试图回答你的问题

  1. 在 ggplot 调用中定义的美学,如果未明确定义,则在所有后续层中用作默认值。这就是geom_smooth 起作用的原因
  2. 您可以为每一层分别指定data frameaesthetics。例如,如果您想在绘制geom_smooth 时排除x 的某些值,您可以在geom_smooth 调用中指定subset = .(x != xvalues)

如果您有具体问题,我可以提供更详细的示例。

希望对你有帮助

【讨论】:

  • 嗨 Ramnath - 要求一个两层或三层的例子太过分了,每层都表达一个数据概念(即美学、子集、分组、将计算的 var 传递给 geom 等。 )与一些关于每一层发生的事情的cmets。越详细越好(即保持统计和几何分开,每一层都被清楚地标出,等等)。我认为这对其他 ggplot2 新手很有帮助。此外,我不清楚子集是一种美感还是与数据框有关。也许这个例子会说明这一点。如果这个问题太模糊,请告诉我。
  • @SFun.当然,我可以提供一些例子来更清楚地说明这些想法
  • 太棒了!也许您还可以解释 subset = .(x != xvalues) 中的句点是什么意思。我搜索了这本书,但找不到该信息。我理解双句..var.. 但不是单句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 2019-03-19
相关资源
最近更新 更多