存储 do.call("grid.arrange") 输出而不打印

问题描述 投票:0回答:1

我想创建一个变量 p,其中包含带有四个 ggplot2 子图的图。我可以使用下面的代码来实现这一点:

library(ggplot2)
library(gridExtra)
data = diamonds[1:50,]
x = data$x
myPlots = lapply(c(1,5,6,7), function(i){
  y = as.data.frame(data[,i])
  y = y[,1]
  df = data.frame(x=x,y=y)
  p <- qplot(x, y, data=df)
  p
})

p = do.call("grid.arrange", c(myPlots, ncol=2))

我喜欢稍后可以通过调用使用变量 p:

library(grid)
grid.draw(p)

但是,我不喜欢当我最初使用

do.call("grid.arrange")
语法创建 p 时,它会自动绘制它(至少在 RStudio 中)。

我的问题是:是否可以创建 p 来存储以供以后使用,而不在创建时绘制它?

r ggplot2 gridextra
1个回答
0
投票

我一生都不知道如何使用

grid.arrange
/
gridExtra
/
arrangeGrob
来阻止这种情况发生。我必须在 R Markdown 块头中使用
fig.hide
,然后将后续输出命令放入不同的块中。

```{r, fig.show='hide'}

执行代码时仍然显示

grid.arrange()
的结果输出,但它不会最终出现在编织报告中。

https://bookdown.org/yihui/rmarkdown-cookbook/hide-one.html

© www.soinside.com 2019 - 2024. All rights reserved.