有人向我指出,在data
中指定aesthetics
和ggplot2
的方式有不同,如下所示。我从来没有见过这个 - 在所有的书籍中,文档data
始终是一个数据框,而aes
里面是变量的名称。这个点语法是什么?
y <- rnorm(100) ; x <- rnorm(100)
m <- lm(y ~ x)
library(ggplot2)
ggplot(data = m, aes(.resid, .fitted)) + geom_point()
答案 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
内没有做任何聪明的事情,但实际上是强化产生的列名的一部分。