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

时间:2013-01-28 20:07:51

标签: r ggplot2

请考虑以下几行。

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

p + geom_histogram()   
p + stat_summary(fun.y=identity, geom='bar')

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

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

1 个答案:

答案 0 :(得分:38)

扩展@joran的注释,ggplot中具有双周期(..count....density..等)的特殊变量由原始数据集的统计变换返回。这些特定的由stat_bin返回,由geom_histogram隐式调用(在文档中注意stat参数的默认值为"bin")。您的第二个示例调用不同的stat函数,该函数不会创建名为..count..的变量。您可以使用

获得相同的图表
p + geom_bar(stat="bin")

在较新版本的ggplot2中,还可以使用stat函数代替封闭..,因此aes(y = ..count..)变为aes(y = stat(count))