如何使用布局进行多图块绘图

时间:2013-10-17 09:24:35

标签: r plot

我想在par(mfrow=c(2,2)) ..

中绘制以下四种情况
layout(matrix(1:2,ncol=1),widths=1,heights=c(2,2),respect=FALSE)
par(mar = c(0, 4.1, 4.1, 2.1))
plot(rnorm(100),main="Hi",type='l',ylab='',xaxt='n')
par(mar = c(4.1, 4.1, 0, 2.1))
plot(rnorm(100),main="",xlab="Hi",type='l',ylab='')

因此,我正在寻找的是总共8个地块;以上双图的4个瓷砖。然而,如果我在上面加上par(mfrow = c(2,2))并运行上述四次,它每次只会生成一个新的图,覆盖对mfrow的调用。

如何调整上述代码,使其适用于par(mfrow=c(2,2))

1 个答案:

答案 0 :(得分:2)

直接使用正确的layout,您无需使用par(mfrow=...)累积它。

layout(matrix(1:8,ncol=2))
par(mar = c(0, 4.1, 4.1, 2.1))
plot(rnorm(100),main="Hi1",type='l',ylab='',xaxt='n')
par(mar = c(4.1, 4.1, 0, 2.1))
plot(rnorm(100),main="",xlab="Hi1",type='l',ylab='')

par(mar = c(0, 4.1, 4.1, 2.1))
plot(rnorm(100),main="Hi2",type='l',ylab='',xaxt='n')
par(mar = c(4.1, 4.1, 0, 2.1))
plot(rnorm(100),main="",xlab="Hi2",type='l',ylab='')

par(mar = c(0, 4.1, 4.1, 2.1))
plot(rnorm(100),main="Hi3",type='l',ylab='',xaxt='n')
par(mar = c(4.1, 4.1, 0, 2.1))
plot(rnorm(100),main="",xlab="Hi3",type='l',ylab='')

par(mar = c(0, 4.1, 4.1, 2.1))
plot(rnorm(100),main="Hi4",type='l',ylab='',xaxt='n')
par(mar = c(4.1, 4.1, 0, 2.1))
plot(rnorm(100),main="",xlab="Hi4",type='l',ylab='')

enter image description here

如上图所示,绘制的顺序与用于定义布局的矩阵的顺序相同:

matrix(1:8,ncol=2)
     [,1] [,2]
[1,]    1    5
[2,]    2    6
[3,]    3    7
[4,]    4    8