2012-06-01 89 views
4

我想在單個繪圖窗口中創建多個繪圖,其中每個繪圖的面板寬度與每個繪圖的xlim成比例。在R中獲得不同繪圖寬度的多個繪圖

目前我使用:

layout(matrix(c(1:8,10,9), 5, 2, byrow = FALSE), widths=2)  
layout.show(10) 

基本上,我想width被單獨應用到每個情節,而不是在一列中的所有情節。這樣做的最好方法是什麼?

+0

你能否修正你的例子,以便矩陣傳遞給'佈局'實際上是有效的輸入?如果最大的整數是10,它也必須包含1-9。 – joran

+0

對不起,更正了 – user1202664

回答

4

layout只適用於如果圖可以排列在規則網格上,但它們不必具有相同寬度。

layout(
    matrix(
    c(1,1,2,3,3,2,4,5,5,6,6,6), 
    nc=3, byrow = TRUE 
) 
) 
layout.show(6) 

如果你想要的東西真的不規則,你可以使用par(fig=...,new=TRUE)

plot.new() 
par(mar=c(2,2,1,1)) 
k <- 4 
f <- function() 
    plot(rnorm(20),rnorm(20), xlab="", ylab="", main="", las=1) 
for(i in 1:k) { 
    par(fig=c(0,i/(k+1), (i-1)/k, i/k), new=TRUE) 
    f() 
    par(fig=c(i/(k+1),1, (i-1)/k, i/k), new=TRUE) 
    f() 
}