在ggplot2中使用“.resid”语法命名美学

时间:2015-11-14 03:35:59

标签: r ggplot2

有人向我指出,在data中指定aestheticsggplot2的方式有不同,如下所示。我从来没有见过这个 - 在所有的书籍中,文档data始终是一个数据框,而aes里面是变量的名称。这个点语法是什么?

y <- rnorm(100) ; x <- rnorm(100) 
m <- lm(y ~ x)

library(ggplot2) 
ggplot(data = m, aes(.resid, .fitted)) + geom_point()

1 个答案:

答案 0 :(得分:3)

升级评论

ggplot正在fortify对象上调用lm,这会产生一个数据帧,然后传递给ggplot.data.frame

要查看代码

ggplot2:::ggplot.default

#function (data = NULL, mapping = aes(), ..., environment = parent.frame()) 
#{
#    ggplot.data.frame(fortify(data, ...), mapping, environment = environment)
#}
#<environment: namespace:ggplot2>

至于fortify,它会将各种模型和R对象强制转换为数据帧。看看methods(fortify)

您可以直接查看fortify

的结果
ff <- fortify(m)
names(ff)
#[1] "y"   "x"    ".hat"   ".sigma"    ".cooksd"   ".fitted"   ".resid"  ".stdresid"

因此,dot在aes内没有做任何聪明的事情,但实际上是强化产生的列名的一部分。