我有8个情节,我想绘制所有一页。每个绘图都是使用基础图形制作的,我宁愿坚持使用lattice
或ggplot
。
下面的方案是一个页面,其中每个数字表示哪个图#占据该页面的比例。有没有办法用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()
答案 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))
}
如果布局矩阵中重复相同的数字,则绘图使用与此数字对应的空格。