gpt4 book ai didi

r - 将 gridExtra::grid.arrange 的输出存储到一个对象中

转载 作者:行者123 更新时间:2023-12-04 01:09:17 30 4
gpt4 key购买 nike

我使用 gridExtra::grid.arrange 将多个图放入一张图像中并且希望可以选择将组合图保存为一个对象,该对象可以作为返回对象列表的一部分从函数内返回。理想情况下,我想在不打印绘图对象的情况下执行此操作。

下面的代码创建了两个图,将它们与 grid.arrange 组合在一起。 ,并尝试将结果保存到 x .然而,x评估为 NULL并打印情节。 grid.arrange 的文档将我指向 arrangeGrob并建议可以使用 plot=FALSE 关闭绘图,但是当我尝试这样做时出现错误,因为 FALSE不是 grob 对象。

对于我不理解的任何建议?

# R under development
# Windows 7 (32 bit)
# ggplot2 1.0.0
# gridExtra 0.9.1

p1 <- ggplot(mtcars, aes(x=factor(cyl), y=mpg)) + geom_boxplot()

p2 <- ggplot(mtcars, aes(x=factor(cyl), y=wt)) + geom_boxplot()

x <- gridExtra::grid.arrange(p1, p2)

x

根据评论,我正在添加此编辑。当我用 arrangeGrob 尝试时,我根本没有输出。
> gridExtra::arrangeGrob(p1, p2)
> print(gridExtra::arrangeGrob(p1, p2))
Error: No layers in plot
> x <- gridExtra::arrangeGrob(p1, p2)
> x
Error: No layers in plot

最佳答案

您编辑中的代码无法正常工作,因为您没有加载 gridExtra .

library(gridExtra)
y <- arrangeGrob(p1, p2, ncol = 1)
class(y)
#[1] "gtable" "grob" "gDesc"
grid.draw(y)

enter image description here

编辑:从 2.0.0 版开始,我对 grid 的评论下面的依赖不再有效,因为 grid现在是进口的。

编辑:使用 gridExtra 版本 >= 2.0.0,无需附加任何一个包,
p <- ggplot2::qplot(1,1)
x <- gridExtra::arrangeGrob(p, p)
grid::grid.draw(x)

关于r - 将 gridExtra::grid.arrange 的输出存储到一个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062766/

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