4
我是从MatLab切换过来的R/ggplot新手。R + ggplot:geom_txt标签不能识别函数调用中的变量
我想创建一个函数使用ggplot与线性回归方程打印在图上(这在Adding Regression Line Equation and R2 on graph讨论)。但在这里,我试图用它来构建一个功能,但并不成功。
我一直得到一个错误 - “eval(expr,envir,enclos):object'label'not found”错误。
一个解决方法是定义“标签”变量的功能以外,但我不明白为什么这不起作用。
任何人都可以解释为什么吗?
df <- data.frame(x = c(1:100))
df$y <- 2 + 3 * df$x + rnorm(100, sd = 40)
f <- function(DS, x, y, z) {
label <- z
print(label)
ggplot(DS, aes(x=x, y=y)) +
geom_point() +
labs(y=y) +
labs(title=y) +
xlim(0,5)+
ylim(0,5)+
geom_smooth(method="lm", se=FALSE)+
geom_text (aes(x=1, y=4, label=label))
}
f(df, x, y, "aaa") #execution line
你能解释一下是什么问题? – Soheil
我推荐'annotate(geom =“text”,...)'而不是'geom_text'。避免创建新数据框的麻烦。 – Gregor
另外,您不需要在函数中传递x和y。您只需传递数据帧,ggplot从DS获取x和y。 – eipi10