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

6
我有一个mfrow=c(6,4)的图和一种特殊情况,我希望每幅图都是mar=c(1,1,1,1)。这使得底部4个图的x-axisxlab被裁剪掉了(即使在导出到.eps时也是如此)。
我该如何停止这样做呢?我尝试着做postscript("test.eps",height=N),其中N是一个比默认值大的实数。这会在.eps的顶部和底部产生很多空白空间,但是x-axis仍然被截断。
所以我的问题是:如何在要求mfrowmar的前提下,让plot()停止裁剪我的x-axisxlab?(也许我正在寻找一些方法使设备的底部变大,以便我想要的东西不会被裁剪掉?)。
这是我的绘图:
postscript("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个回答

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接