r - 如何正确使用 aes 为 ggplot2 中的绘图编写函数?

标签 r function ggplot2

我查看了很多答案,但在为 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")

我得到一个没有像这样的散点的图表:

Graph I get

有人能帮帮我吗?我真的很想学习用 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/

相关文章:

r - 数据框中每个唯一组合的频率

c++ - 我们可以在 C++ 的成员函数中找到调用者吗?

r - 如何为R中的函数内的函数提供动态数量的参数?

r - 根据用于在 Shiny 中绘制的 csv 文件的列名创建选择列表

r - ggplot 图例位于顶部但标题下方?

r - ggplot中是否有与plot中的varwidth选项等效的东西?

r - 使用第一个值创建新列,后面不跟其他列中的其他值

r - Shapviz 蜂群图颜色选项

r - 在R中将团队结构重组为个人级别的数据(同时保留团队级别的信息)

javascript - 使用文字点符号 setter 将属性注入(inject) ReactJS 功能组件是一种好习惯吗?