如何在R中调整布局的行宽

时间:2015-02-09 16:55:10

标签: r plot

我有8个情节,我想绘制所有一页。每个绘图都是使用基础图形制作的,我宁愿坚持使用latticeggplot

下面的方案是一个页面,其中每个数字表示哪个图#占据该页面的比例。有没有办法用layout或任何其他基本函数来做到这一点?

1111122
3333444
5556666
7788888

我到目前为止的一些代码:

pdf("test.pdf",height=30,width=10)
widths = c(5/7,2/7,4/7,3/7,3/7,4/7,2/7 5/7) # this doesn't work

x=layout(matrix(1:8,nrow=4,ncol=2,byrow=T), widths=widths,
         heights=rep(1/4,4))

for (ix in 1:4){        

    plot(rnorm(100))  
    plot(rnorm(100))
}
dev.off()

1 个答案:

答案 0 :(得分:3)

您可以为布局指定矩阵并使用layout函数。

mat <- t(sapply(1:4, function(x) 
                       rep.int(c((x - 1) * 2 + 1, (x - 1) * 2 + 2), c(6 - x, 1 + x))))
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
# [1,]    1    1    1    1    1    2    2
# [2,]    3    3    3    3    4    4    4
# [3,]    5    5    5    6    6    6    6
# [4,]    7    7    8    8    8    8    8

layout(mat)

for (i in 1:8) {
  plot(rnorm(10))
}

如果布局矩阵中重复相同的数字,则绘图使用与此数字对应的空格。

enter image description here