使用布局函数在r中绘制多个栅格

Jam*_*mes 5 graphics plot r raster r-raster

我试图在一个图中绘制五个栅格。我可以轻松地做到这一点,par()但我希望我的多重绘图是对称的,顶部栅格居中。创建一个虚拟图效果很好:

m <- rbind(c(1, 1), c(2, 3), c(4,5))
print(m)

     [,1] [,2]
[1,]    1    1
[2,]    2    3
[3,]    4    5

layout(m)
layout.show(5)
Run Code Online (Sandbox Code Playgroud)

虚拟图

但当我尝试使用光栅时,一切都出了问题:

m <- rbind(c(1, 1), c(2, 3), c(4,5))
layout(m)

plot(rast1)
plot(shape, add=TRUE)
plot(rast2)
plot(shape, add=TRUE)
plot(rast3)
plot(shape, add=TRUE)
plot(rast4)
plot(shape, add=TRUE)
plot(rast5)
plot(shape, add=TRUE)
Run Code Online (Sandbox Code Playgroud)

光栅图

添加到每个地块中的“形状”只是我正在研究的保护区的轮廓。底部的三个看起来位置正确,但显然不是顶部的。假设底部 3 个位置正确,我还想让每个都更大。

我尝试过改变情节边距,但这只会让事情变得更糟。我也尝试使用image()而不是按照此处的plot()建议使用,但我刚刚收到错误消息。

作为可重现的示例,您可以使用:

library(raster)
r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5)
rast1 <- setValues(r, rnorm(25))
rast2 <- setValues(r, rnorm(25))
rast3 <- setValues(r, rnorm(25))
rast4 <- setValues(r, rnorm(25))
rast5 <- setValues(r, rnorm(25))

m <- rbind(c(1, 1), c(2, 3), c(4,5))
layout(m)

plot(rast1)
plot(rast2)
plot(rast3)
plot(rast4)
plot(rast5)
Run Code Online (Sandbox Code Playgroud)

这会给你带来看起来非常相似的混乱:

在此输入图像描述

谁能帮我 a) 修复每个栅格的位置 b) 使每个栅格更大?任何帮助将不胜感激,我正处于放弃的边缘,只是用手将单独的光栅粘在一起。

Rob*_*ans 4

我认为如果你使用image而不是plot

library(raster)
r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5)
r1 <- r2 <- r3 <- r4 <- r5 <- setValues(r, rnorm(ncell(r)))

m <- rbind(c(1, 1), c(2, 3), c(4,5))
layout(m)

image(r1)
image(r2)
image(r3)
image(r4)
image(r5)
Run Code Online (Sandbox Code Playgroud)