我查看了很多答案,但在为 ggplot2 中的绘图编写函数时仍然遇到问题。 这是一个示例数据集:
d<-data.frame(replicate(2,sample(0:9,1000,rep=TRUE)))
colnames(d)<-c("fertilizer","yield")
现在我编写以下函数 - 我只想将 x 和 y 提供给该函数:
test <- function(explanatory,response)
{
plot<- ggplot(d, aes(x =explanatory, y=response)) +
geom_point()+
ggtitle("Correlation between Fertilizer and Yield") +
theme(plot.title = element_text(size = 10, face = "bold"))+
geom_smooth(method=lm, se=FALSE) +
annotate("text", x=800, y=20, size=5,label= cor6)
plot
}
当我用这个调用这个函数时,
test("fertilizer","yield")
我得到一个没有像这样的散点的图表:
有人能帮帮我吗?我真的很想学习用 R 编写函数。
最佳答案
使用aes_string
代替aes
。它应该工作。为我工作:)
注意:删除函数定义中参数周围的引号。您的 cor6 也应该用引号引起来。见下文
test <- function(explanatory,response)
{
plot<- ggplot(d, aes_string(x =explanatory, y=response)) +
geom_point()+
ggtitle("Correlation between Fertilizer and Yield") +
theme(plot.title = element_text(size = 10, face = "bold"))+
geom_smooth(method=lm, se=FALSE) +
annotate("text", x=800, y=20, size=5,label= "cor6")
plot
}
关于r - 如何正确使用 aes 为 ggplot2 中的绘图编写函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53615210/