我正在使用以下公式将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()为止,我以后所做的任何事情都会不断发生。
谢谢!
答案 0 :(得分:2)
您可以使用par(mfrow = c(3, 2))
并调整边距。您可能需要增加窗口的大小以适应该图
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)
答案 1 :(得分:1)
除了 @AllanCameron 的解决方案之外,我还会记住layout
,因为它可能非常有用!另外,您可能希望将RStudio“图”窗口视为预览工具。更好地使用pdf
或png
保存绘图,如下所示;情节将保存在您的getwd()
中。另外,您可以通过创建一个plot
可以循环的sub.cols
数据帧来避免重复的sapply
调用。
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(.))
。