我想创建一个变量 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 来存储以供以后使用,而不在创建时绘制它?
我一生都不知道如何使用
grid.arrange
/gridExtra
/arrangeGrob
来阻止这种情况发生。我必须在 R Markdown 块头中使用 fig.hide
,然后将后续输出命令放入不同的块中。
```{r, fig.show='hide'}
执行代码时仍然显示
grid.arrange()
的结果输出,但它不会最终出现在编织报告中。