R 如何将多个ggplot2元素组合到函数的返回中?
如果我尝试手动合成R 如何将多个ggplot2元素组合到函数的返回中?,r,ggplot2,R,Ggplot2,如果我尝试手动合成ggplot2plot的某些元素,效果很好: > p <- ggplot(aes(x = mpg, y = hp), data = mtcars) > p + geom_vline(xintercept = 20) + geom_point(data = mtcars) >p p+几何线(xintercept=20)+几何点(data=mtcars) 但是,如果我试图将一些组合捆绑到一个函数中,我会得到一个错误: > myFunction <-
ggplot2
plot的某些元素,效果很好:
> p <- ggplot(aes(x = mpg, y = hp), data = mtcars)
> p + geom_vline(xintercept = 20) + geom_point(data = mtcars)
>p p+几何线(xintercept=20)+几何点(data=mtcars)
但是,如果我试图将一些组合捆绑到一个函数中,我会得到一个错误:
> myFunction <- function() {
+ return(
+ geom_vline(xintercept = 20) + geom_point(data = mtcars)
+ )
+ }
> p <- ggplot(aes(x = mpg, y = hp), data = mtcars)
> p + myFunction()
Error in geom_vline(xintercept = 20) + geom_point(data = mtcars) :
non-numeric argument to binary operator
>myFunction p+myFunction()
几何线误差(xintercept=20)+几何点误差(data=mtcars):
二进制运算符的非数值参数
在函数体中正确组合ggplot2
元素的ggplot2
符号中是否缺少某些内容?ggplot2支持元素的“列表”:
myFunction <- function()
list(geom_vline(xintercept = 20),
geom_point(data = mtcars))
p <- ggplot(aes(x = mpg, y = hp), data = mtcars)
p + myFunction()
myFunction我认为+
运算符要求其中一个参数属于类ggplot
,以便正确发挥其魔力。几何图形不是ggplot
对象,而是plotp
对象。另请参见Hadley的尼斯教程(2015年年中)中关于这一点的内容: