ggplot aes_string与交互

knk*_*knk 8 r parameter-passing ggplot2

使用aes_string可以轻松构造函数以获取参数:

p <- ggplot(mtcars, aes_string(x="mpg", y="wt", group=interaction("cyl","gear"))) + 
     geom_point()
Run Code Online (Sandbox Code Playgroud)

现在写这个功能

make_plot <- function(x,y, interact) {
    p <- ggplot(mtcars, aes_string(x=x, y=y, group=interact)) + 
         geom_point()
}
Run Code Online (Sandbox Code Playgroud)

并调用该功能

make_plot("mpg","wt",c("cyl","gear"))
Run Code Online (Sandbox Code Playgroud)

但是这里没有使用交互,即它没有被解释.我不想为交互bcos使用单独的变量,相同的功能可以用于其他图.我应该如何制作交互变量,使其被ggplot接受和理解?

Sas*_*haH 5

根据答案,这应该可以工作(不引用名称):

p <- ggplot(mtcars, aes_string(x=x, y=y, group=paste0("interaction(", paste0(interact, 
    collapse =  ", "), ")"))) + geom_point()
Run Code Online (Sandbox Code Playgroud)