r - 由 recordPlot() 函数保存的 Base R 图的绘图布局

标签 r plot

我可以使用recordPlot() functionsave 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)

关于r - 由 recordPlot() 函数保存的 Base R 图的绘图布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71762099/

相关文章:

r - 在 R 中自定义时间序列数据图 X 轴的日期格式?

Matlab:如何在等高线图上设置对数刻度

r - 使用 GIT 面板在 RStudio 中提交大量文件

r - 在ggplot中注释方程

r - 从 .xlsx 中读取 .xlsx,张数未知

r - 应用于 data.table : find rows where a subset of columns are all NA 的行

重绘维恩图

python - secondary_y=True 改变 pandas 中的 x 轴

python - 与Python中的子图共享X轴并同时更改大小

c++ - Qwt - 重绘不清除当前情节