将参数传递给ggplot

想创建一个使用ggplot生成图形的函数.为了简单起见,典型的图可能是

ggplot(car, aes(x=speed, y=dist)) + geom_point()

我想要创建的功能是类型

f <- function(DS, x, y) ggplot(DS, aes(x=x, y=y)) + geom_point()

然而,这不会起作用,因为x和y不是字符串.在以前的SO问题(例如this one)中已经注意到了这个问题,但是在我看来没有提供令人满意的答案.如何修改上述功能以使其与任意数据帧一起工作?

一个解决方案是将x和y作为数据帧DS中的列的字符串名称传递.

f <- function(DS, x, y) {    
  ggplot(DS, aes_string(x = x, y = y)) + geom_point()  
}

然后调用函数为:

f(cars, "speed", "dist")

但是,似乎你不想要那个?您能否提供一个为什么需要不同功能的示例?是不是因为你不想在同一个数据框架中有参数?

相关文章
相关标签/搜索