使用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"))
但是这里没有使用交互,即它没有被解释。我不想为交互bcos使用单独的变量,相同的功能可以用于其他图。我应该如何制作交互变量,使其被ggplot接受和理解?
答案 0 :(得分:5)
根据this回答,这应该有效(不引用姓氏):
p <- ggplot(mtcars, aes_string(x=x, y=y, group=paste0("interaction(", paste0(interact,
collapse = ", "), ")"))) + geom_point()