R语言 在行/网格中绘制不是使用ggplot创建的多个图

zsbz8rwp  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(104)

我创建了两个图,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。在其他情况下,图只是全屏打印。我如何才能实现我的目标?
先谢了
托马斯·菲利普斯

t8e9dugd

t8e9dugd1#

技巧是将图放在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()
e4eetjau

e4eetjau2#

试图抢先OP对我上面第二条评论的回应...
这里有一个解决方案,从原始数据开始,在散点图上覆盖最佳拟合线性回归。

d <- tibble(
       X=runif(40, 0, 100),
       Y=-5 + 0.3 * X + rnorm(40)
     )

d %>% ggplot(aes(x=X, y=Y)) + 
        geom_point() +
        stat_smooth(method = "lm")

相关问题