无法将 textGrob 作为 main 传递给 do.call("arrangeGrob")
Unable to pass textGrob as main to do.call("arrangeGrob")
同时
test <- do.call("arrangeGrob", c(plots.list[1:2],ncol=2,main=("test"))
工作正常,
test <- do.call("arrangeGrob", c(plots.list[1:2],ncol=2,main=textGrob("test")))
给出以下错误:
"Error in arrangeGrob(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, : input must be grobs!"
我需要 main 是一个 textGrob 以便设置字体大小和字体。有人知道我做错了什么吗?
经过几个小时的谷歌搜索,我在发布问题后直接找到了答案......
以下作品:
test <- do.call("grid.arrange",c(plots.list, ncol=2, main =substitute(textGrob("test"),env = parent.frame())))
问题是因为 do.call
的参数列表不正确,
c(list(1, 2), ncol=1, textGrob("a"))
"exposes" textGrob 的内容,而你真的想追加两个列表,
c(list(1, 2), list(ncol=1, textGrob("a")))
应用于你的问题,这就变成了
do.call("grid.arrange", c(plots.list[1:2],list(ncol=2, main=textGrob("test"))))
但请注意即将推出的 gridExtra 版本 (>= 2.0.0) 不再识别 main
,您应该使用 top
代替
do.call("grid.arrange", c(plots.list[1:2],list(ncol=2, top=textGrob("test"))))
并且,由于 arrangeGrob
获得了一个新的 grobs
参数,您不再需要 do.call
,
grid.arrange(grobs=plots.list[1:2], ncol=2, top=textGrob("test"))
同时
test <- do.call("arrangeGrob", c(plots.list[1:2],ncol=2,main=("test"))
工作正常,
test <- do.call("arrangeGrob", c(plots.list[1:2],ncol=2,main=textGrob("test")))
给出以下错误:
"Error in arrangeGrob(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, : input must be grobs!"
我需要 main 是一个 textGrob 以便设置字体大小和字体。有人知道我做错了什么吗?
经过几个小时的谷歌搜索,我在发布问题后直接找到了答案......
以下作品:
test <- do.call("grid.arrange",c(plots.list, ncol=2, main =substitute(textGrob("test"),env = parent.frame())))
问题是因为 do.call
的参数列表不正确,
c(list(1, 2), ncol=1, textGrob("a"))
"exposes" textGrob 的内容,而你真的想追加两个列表,
c(list(1, 2), list(ncol=1, textGrob("a")))
应用于你的问题,这就变成了
do.call("grid.arrange", c(plots.list[1:2],list(ncol=2, main=textGrob("test"))))
但请注意即将推出的 gridExtra 版本 (>= 2.0.0) 不再识别 main
,您应该使用 top
代替
do.call("grid.arrange", c(plots.list[1:2],list(ncol=2, top=textGrob("test"))))
并且,由于 arrangeGrob
获得了一个新的 grobs
参数,您不再需要 do.call
,
grid.arrange(grobs=plots.list[1:2], ncol=2, top=textGrob("test"))