【问题标题】:How to do a multi-tile plot with layout如何使用布局进行多图块绘图
【发布时间】:2013-10-17 09:24:35
【问题描述】:

我想在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))

【问题讨论】:

  • ?layout “与在设备上安排绘图的其他机制完全不兼容”,请使用其中一个

标签: r plot


【解决方案1】:

直接使用正确的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='')

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多