【问题标题】:Plot multiple rasters in r using layout function使用布局函数在 r 中绘制多个栅格
【发布时间】:2016-10-20 19:16:30
【问题描述】:

我试图在一个图中绘制五个栅格。我可以很容易地用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)

但是当我尝试使用我的栅格时一切都出错了:

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)

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

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

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

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)

这会让你看起来非常相似:

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

【问题讨论】:

    标签: r plot graphics raster r-raster


    【解决方案1】:

    我认为如果您使用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)
    

    【讨论】:

    • 这适用于可重现的示例,但不适用于我的自定义栅格:plot(fires.3km, axes=FALSE, box=FALSE, col=RHGL(100), par(mar=c(2, 2, 2, 2)), main= "Number of Fires") 知道如何将它包含在 image() 函数中吗?最后,我的顶部光栅也被严重扭曲了。
    猜你喜欢
    • 2012-08-21
    • 2020-12-30
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2020-04-30
    • 2011-01-12
    • 2018-09-22
    • 2021-08-19
    相关资源
    最近更新 更多