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