8

使用 aes_string 可以很容易地构造函数来获取参数进行绘图:

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

现在编写函数

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

并调用该函数

make_plot("mpg","wt",c("cyl","gear"))

但这里不使用交互,即不解释交互。我不想为交互使用单独的变量,因为相同的函数可以用于其他绘图。我应该如何制作交互变量以使其被 ggplot 接受和理解?

4

1 回答 1

7

根据this answer这应该有效(不引用colnames):

p <- ggplot(mtcars, aes_string(x=x, y=y, group=paste0("interaction(", paste0(interact, 
    collapse =  ", "), ")"))) + geom_point()
于 2014-08-19T17:51:19.473 回答