首页 > 解决方案 > 在行/网格中绘制多个未使用 ggplot 创建的图

问题描述

我创建了 2 个图,p1 和 p10,并将它们记录如下:

plot(data$Fwd_EY, data$SPNom1YrFwdRet, pch = 16, cex = 1.0, col = "blue")
p1 <- recordPlot()
dev.off()

plot(data$Fwd_EY, data$SPNom10YrFwdRet, pch = 16, cex = 1.0, col = "blue")
p10 <- recordPlot()
dev.off()

我将 P1 和 P10 打印到 .png 文件,然后想在将它们打印到单个 .png 文件之前并排查看两个图。我尝试了以下变体但没有成功。

myPlots = c(p1, p10)
ggarrange(plotlist = myPlots, nrow = 1)

par(mfrow=c(1,2))
p1
p10

nf <- layout( matrix(c(1,2), ncol=1) )
p1
p10

在某些情况下,R 似乎要求绘图是 ggplots。在其他情况下,这些图只是全屏打印。我怎样才能实现我的目标?

提前致谢

托马斯飞利浦

标签: rggplot2plot

解决方案


诀窍是将图放在list.

myPlots = list(p1, p10)
ggpubr::ggarrange(plotlist = myPlots, nrow = 1)

警告消息:
1:gridGraphics处理 base-R 图需要包。替换空地块。
2:gridGraphics处理base-R图需要包。替换空地块。

library(gridGraphics)
#Loading required package: grid

myPlots = list(p1, p10)
ggpubr::ggarrange(plotlist = myPlots, nrow = 1)

在此处输入图像描述

数据

plot(1:10, pch = 16, cex = 1.0, col = "blue")
p1 <- recordPlot()
dev.off()

plot(10:1, pch = 16, cex = 1.0, col = "red")
p10 <- recordPlot()
dev.off()

推荐阅读