如何停止图形设备窗口切断plot()的边缘?

时间:2012-08-27 03:39:52

标签: r plot

我有一个mfrow=c(6,4)情节和一个特殊情况,我希望每个情节都是mar=c(1,1,1,1)。这使得底部4个图表的x-axisxlab被切断(即使导出到.eps时)。

如何阻止R这样做?我已经尝试postscript("test.eps",height=N) N,其中.eps是一个大于默认值的实数。这会在x-axis的顶部和底部产生大量空白区域,但plot()仍然被切断。

所以我的问题是;考虑到我想要上述x-axisxlab的约束,如何让mfrow停止切断marpostscript("test.eps") y <- rnorm(100) x <- rnorm(100) par(mfrow=c(6,4),mar=c(1,1,1,1)) for(i in 1:((6*4))) { if(i <= (6*4)-4) { plot(y,x,xlab="",xaxt="n") } if(i > (6*4)-4) { plot(y,x,xlab="HELLO") } } dev.off() ? (我可能会想方设法让设备的底部更大,以便我想要的东西不被切断?)。

这是我的情节:

{{1}}

1 个答案:

答案 0 :(得分:3)

我建议您添加一个外边距(oma)以不剪切刻度标签,并使用mtext绘制轴标签,使其比默认位置更近。

postscript("test.eps")
y <- rnorm(100)
x <- rnorm(100)

par(mfrow=c(6,4),mar=c(1,1,1,1), oma=c(3,1,0,0))

for(i in 1:((6*4)))
{
    if(i <= (6*4)-4)
    {
    plot(y,x,xlab="",xaxt="n")
    }
    if(i > (6*4)-4)
    {
    plot(y,x,xlab="")
    mtext("HELLO", 1, 2.5)
    }
}
dev.off()

enter image description here