R:绘制多个图形时保留轴标签和比例

R: keeping axis labels and scales when plotting multiple graphs

我正在使用以下公式绘制 5 个图形:

my_data <- as.data.frame(datasets::volcano)

layout(matrix(c(1,2,3,4,5,6), 3, 2, byrow = TRUE))
par(mar=c(1,1,1,1))
plot(my_data$V1, my_data$V2)
plot(my_data$V3, my_data$V4)
plot(my_data$V5, my_data$V6)
plot(my_data$V7, my_data$V8)
plot(my_data$V9, my_data$V10)
plot.new()

效果很好,但我放宽了第 1、3 和 5 个图的 y 轴和后者的 x 轴的比例。在我 dev.off().

之前,我以后做的任何事情都会发生这种情况。

谢谢!

您可以使用 par(mfrow = c(3, 2)) 并调整边距。您可能需要增加 window 的大小以适应绘图

my_data <- as.data.frame(datasets::volcano)
par(mfrow = c(3, 2))
par(mar = c(2, 2, 2, 2))
plot(my_data$V1, my_data$V2)
plot(my_data$V3, my_data$V4)
plot(my_data$V5, my_data$V6)
plot(my_data$V7, my_data$V8)
plot(my_data$V9, my_data$V10)

除了 @AllanCameron 的解决方案——我会牢记 layout,因为它非常有用!此外,您可能希望将 RStudio "Plots" window 视为预览工具。最好使用 pdfpng 保存您的绘图,如下所示;该情节将保存在您的 getwd() 中。此外,您可以通过创建可以由 sapply.

循环的 sub.cols 数据框来避免重复 plot 调用
my_data <- as.data.frame(datasets::volcano)
sub.cols <- as.data.frame(matrix(1:10, 2))

png("myPlot01.png", width=400, height=600)
layout(matrix(1:6, 3, 2, byrow=TRUE))
op <- par(mar=c(4.5, 2.5, 1.5, 1.5))  ## set par and store old par
sapply(sub.cols, function(i) plot(my_data[i]))
plot.new()
par(op)  ## restore old par
dev.off()

如果弄脏的控制台让您烦恼,您可以执行上面的 invisible(sapply(.))