由 recordPlot() 函数保存的 Base R 图的绘图布局
Plot Layout of Base R Plots Saved by recordPlot() Function
我可以在数据对象中使用 recordPlot() function to save Base R plots:
plot(1:5, 1:5)
my_plot1 <- recordPlot()
plot(1:10, 1:10)
my_plot2 <- recordPlot()
plot(1:20, 1:20)
my_plot3 <- recordPlot()
我想在地块网格中绘制这三个地块。通常,我可以为此使用布局功能。但是,当我想绘制由 recordPlot 创建的图时,这不起作用。
这不起作用:
layout(matrix(c(1, 0, 2, 3), ncol = 2))
plot.new()
my_plot1
my_plot2
my_plot3
如何绘制由 recordPlot() 函数保存的图表网格?
我最近不得不解决一个类似的问题,以下是两个可能适合您的解决方案。
(1) 使用 par() 指定行数/列数:
# create objects with base plots
plot(rnorm(50),rnorm(50))
my_plot1 <- recordPlot()
plot(rnorm(50),rnorm(50))
my_plot2 <- recordPlot()
plot(rnorm(50),rnorm(50))
my_plot3 <- recordPlot()
# clear plots in workspace
plot.new()
# plot side by side
par(mfrow= c(1,3)) # specify rows (1) and columns (3) for plotting
my_plot1
my_plot2
my_plot3
(2) 将对象保存到列表中,然后使用 plot_grid(cowplot 库)- 如果您需要导出图形,这很好:
library(cowplot)
# create empty list
p <- list()
# save objects to list
plot(rnorm(50),rnorm(50))
p[[1]] <- recordPlot()
plot(rnorm(50),rnorm(50))
p[[2]] <- recordPlot()
plot(rnorm(50),rnorm(50))
p[[3]] <- recordPlot()
# clear plots
plot.new()
# plot in 3 columns using plot_grid
plot_grid(plotlist = p, nrow=1, ncol=3)
我可以在数据对象中使用 recordPlot() function to save Base R plots:
plot(1:5, 1:5)
my_plot1 <- recordPlot()
plot(1:10, 1:10)
my_plot2 <- recordPlot()
plot(1:20, 1:20)
my_plot3 <- recordPlot()
我想在地块网格中绘制这三个地块。通常,我可以为此使用布局功能。但是,当我想绘制由 recordPlot 创建的图时,这不起作用。
这不起作用:
layout(matrix(c(1, 0, 2, 3), ncol = 2))
plot.new()
my_plot1
my_plot2
my_plot3
如何绘制由 recordPlot() 函数保存的图表网格?
我最近不得不解决一个类似的问题,以下是两个可能适合您的解决方案。
(1) 使用 par() 指定行数/列数:
# create objects with base plots
plot(rnorm(50),rnorm(50))
my_plot1 <- recordPlot()
plot(rnorm(50),rnorm(50))
my_plot2 <- recordPlot()
plot(rnorm(50),rnorm(50))
my_plot3 <- recordPlot()
# clear plots in workspace
plot.new()
# plot side by side
par(mfrow= c(1,3)) # specify rows (1) and columns (3) for plotting
my_plot1
my_plot2
my_plot3
(2) 将对象保存到列表中,然后使用 plot_grid(cowplot 库)- 如果您需要导出图形,这很好:
library(cowplot)
# create empty list
p <- list()
# save objects to list
plot(rnorm(50),rnorm(50))
p[[1]] <- recordPlot()
plot(rnorm(50),rnorm(50))
p[[2]] <- recordPlot()
plot(rnorm(50),rnorm(50))
p[[3]] <- recordPlot()
# clear plots
plot.new()
# plot in 3 columns using plot_grid
plot_grid(plotlist = p, nrow=1, ncol=3)