R par(omd)不包含在mfrow中

R par(omd)不包含在mfrow中,r,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) tmp是否可以尝试改用layout layout(matrix(c(1, 1, 0, 2), ncol = 2L), widths = c(1,1),heights = c(0.5

我希望两个绘图显示在绘图中两个单独的空间中,因此我:

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)

tmp是否可以尝试改用
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)

我想也许你想把高度设置为
c(0.2,0.8)
以获得25%的降低

编辑

但我不认为omd的作用和你想象的一样。它会更改外部边距内的区域,在设置
par(mfrow=c(1,2))
时,该区域将始终包括两个打印区域。我认为您真正想要更改的是
plt
,它改变了当前打印区域的大小(使用
quartz
,因为我在mac上):

石英(宽=5,高=5) par(mfrow=c(1,2))
vec mar也与mfrow合作。由于标准化的设备坐标,omd不起作用。我必须使用mfrow,因为我不知道会有多少个绘图there@Ellipsis... 好吧,我想我把事情弄得太复杂了。只需设置
mar
并增加第二个绘图的顶部边距就可以了。我想使用omd,因为这样我就可以输入百分比,除非我能从百分比中计算出宽度,否则mar对我不起作用
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)