R par(omd)不包含在mfrow中

时间:2011-12-23 17:40:53

标签: r

我想在情节的两个单独的空间中出现两个情节,所以我这样做:

par(mfrow=c(1,2))
plot(1:10,1:10)

现在我希望第二个图比第一个图短约25%所以我调整了omd:

tmp <- par()$omd
tmp[4] <- 0.75
par(omd=tmp)
plot(1:10,1:10)

问题是第二个图显示在第一个图的顶部。如何避免此保证金问题?

1 个答案:

答案 0 :(得分:2)

也许尝试使用layout代替?

layout(matrix(c(1, 1, 0, 2), ncol = 2L), widths = c(1,1),heights = c(0.5,1))
par(mar = c(3,2,2,2))
plot(1:10,1:10)
par(mar = c(3,2,2,2))
plot(1:10,1:10)

enter image description here

我想也许你想把高度设定为c(0.2,0.8)以减少25%?

修改

但我不认为omd做你认为它做的事。它会更改内部的外边距区域,在设置par(mfrow = c(1,2))时,它们将始终包含两个绘图区域。你真正想要改变的是,我认为plt改变了当前绘图区域的大小(使用quartz,因为我在Mac上):< / p>

quartz(width = 5,height = 5)
par(mfrow=c(1,2))
vec <- par("plt")
plot(1:10,1:10)
par(plt = vec * c(1,1,1,0.75))
plot(1:5,1:5)