R中布局的使用

R中布局的使用,r,plot,R,Plot,我正在尝试为此绘图创建此布局: layout(matrix(c(1,1,1,1,1,1, 2,2,2,3,3,3, 2,2,2,3,3,3, 2,2,2,3,3,3), nrow=4,ncol=6,byrow = TRUE)) # Set up the top chart that keeps track of the current frame/iteration # Dress it up a

我正在尝试为此绘图创建此布局:

layout(matrix(c(1,1,1,1,1,1,
                2,2,2,3,3,3,
                2,2,2,3,3,3,
                2,2,2,3,3,3), nrow=4,ncol=6,byrow = TRUE))

# Set up the top chart that keeps track of the current frame/iteration
# Dress it up a little just for fun
plot(-5, xlim = c(1997,2011), ylim = c(0, .3), xlab = "", ylab = "", main = "Time",axes=F)
abline(v=1995, lwd=5, col = rgb(0, 0, 255, 255, maxColorValue=255))

# Bring back the X axis
xticks <- 1997:2011
axis(side=1, at=xticks, labels=xticks)

# Plot
plot(1:100,1:100)
plot(1:100,1:100)

我希望第一张图片有点高,这听起来可能很傻,但原因确实是数字边距太大了

让我详细说明一下。在R中,有几种边距可供图片呼吸:

在您的特殊情况下,当您试图在同一个绘图中填充太多的图形时,边距占用了所有可用的空间

要解决此问题,我建议将所有边距设置为0:

par(mai=c(0,0,0,0), oma=c(0,0,0,0), mar=c(0,0,0,0))
这可能会导致您的绘图至少被渲染。同时,所有子地块之间的距离太近,因此您必须一点一点地增加边距,通过类似的调用
par(…)
,直到结果看起来很好


希望这能有所帮助:)

通过参数
par(mar)
par(oma)
par(mai)
,以线高度的倍数来测量边距,如
?par
中所述

MAR

形式为c(底部、左侧、顶部、右侧)的数字向量,给出绘图四边指定的边距行数。默认值为c(5,4,4,2)+0.1

有两种解决方案,您可以(a)通过设置以前的“par()”设置之一来减少边距,或者(b)可以增加设备的大小,如果设备是可见设备,可以使用鼠标重新调整设备的大小,或者如果要打印为PDF,例如,设置设备时,可以通过设置高度和宽度参数将设备大小设置为更大,如中所示:

pdf( <<FileNameHere>> , width = par('din')[1],height = par('din')[2] )
pdf(,宽度=par('din')[1],高度=par('din')[2])
I通过将宽度设置为
par('din')[1]
,将高度设置为
par('din')[2]
,您可以得到一个与当前设备尺寸相同的PDF,从而可以使用鼠标对可见设备进行调整。(这对于一次性绘图和生产环境的不良实践非常方便)


如果您确实减少了边距,我建议不要设置
mar=c(0,0,0,0)
,因为这将导致没有可见的轴标签。

所以您只使用第一个绘图在顶部获得一些额外的空间?
pdf( <<FileNameHere>> , width = par('din')[1],height = par('din')[2] )