gpt4 book ai didi

r - 如何使用 do.call 将元素添加到 ggplot 对象?

转载 作者:行者123 更新时间:2023-12-02 03:57:38 24 4
gpt4 key购买 nike

反对

我想使用do.call将图层列表e与主图g组合起来。我的目的是使用 annotation_custom(ggplotGrob(x)) 对象(其中 x 是一个独立的 ggplot 对象)覆盖主图。

  • e:LayerInstance/Layer/ggproto 类的对象
  • g:类gg/ggplot的对象

简化的问题

此简化示例使用对 geom_* 函数调用的列表 e:

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())

不需要的解决方案

要将绘图 ge 中的所有元素结合起来,我可以使用单个元素(有效),如下所示:

g + e[[1]] + e[[2]]

但我的意图是(出于自动化原因)使用do.call

问题

do.call+ 以及 ge 列表一起使用会失败:

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+ 方法以及我的 ge 列表正确吗?

最佳答案

仅仅g + e有什么问题?

关于r - 如何使用 do.call 将元素添加到 ggplot 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43275002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com