我想使用do.call
将图层列表e
与主图g
合并。
我的目的是使用annotation_custom(ggplotGrob(x))
个对象(其中x
是一个独立的ggplot
个对象)
用。覆盖主图。
e
:课程LayerInstance
/ Layer
/ ggproto
g
:课程gg
/ ggplot
此简化示例使用e
函数调用列表geom_*
:
library(ggplot2)
# data
d <- data.frame(a = 1:3, x = 1:3, y = 1:3)
# main plot
g <- ggplot(d, aes(x, y, label = a))
# plot elements
e <- list(geom_point(), geom_text())
要将情节g
与e
中的所有元素相结合,我可以使用单个元素(有效),如下所示:
g + e[[1]] + e[[2]]
但我的目的是(出于自动化原因)使用do.call
。
将do.call
与+
一起使用以及g
和e
列表失败:
do.call(`+`, c(list(g), e))
# Error in .Primitive("+")(list(data = list(a = 1:3, x = 1:3, y = 1:3), :
# unused argument (<environment>)
如何正确使用do.call
,+
方法以及g
和e
列表?