ggplot中的特殊变量(..count ..,.. density ..等)

Ern*_*t A 34 r ggplot2

请考虑以下几行.

p <- ggplot(mpg, aes(x=factor(cyl), y=..count..))

p + geom_histogram()   
p + stat_summary(fun.y=identity, geom='bar')
Run Code Online (Sandbox Code Playgroud)

理论上,最后两个应该产生相同的情节.在实践中,stat_summary失败并抱怨所需的美学缺失.

为什么我不能用..count..stat_summary?我在文档中找不到有关如何使用这些变量的信息.

Bri*_*ggs 42

扩大@ joran的评论,在ggplot的特殊变量与他们(双左右时间..count..,..density..等)由原始数据集的统计改造返回.这些特定的返回由stat_bin隐式调用geom_histogram(在文档中注意stat参数的默认值是"bin").您的第二个示例调用不同的stat函数,该函数不会创建名为的变量..count...您可以使用相同的图表

p + geom_bar(stat="bin")
Run Code Online (Sandbox Code Playgroud)

在较新版本中ggplot2,也可以使用stat函数而不是封闭..,因此aes(y = ..count..)变为aes(y = stat(count)).

  • 我想在`.count..`变量和用户定义的变量(我用常量完成)之间执行算术运算(在这种情况下,加法).不幸的是,`ggplot2`无法识别变量的名称并产生错误.任何想法,布莱恩? (3认同)
  • @AleksandrBlekh这应该是一个新问题,而不是对旧问题答案的评论.副手,我认为不可能.主数据框中的变量将具有比变换的`.count..`变量更多的值,因此无法匹配它们.但是,如果没有更多细节和可重复的例子(例如一个新问题),我无法回答. (2认同)