绘制整个栅格堆栈时添加栅格值

时间:2019-05-10 04:17:50

标签: r raster

在使用text()绘制整个栅格堆栈时,如何添加栅格值?在绘制单个栅格时可以很容易地对其进行管理,但令我困惑的是如何在整个栅格堆栈中做到这一点。

示例数据:

set.seed(123)
library(raster)
r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)
rr <- lapply(1:10, function(i) setValues(r1,seq(1,ncell(r1),1)))
s <- stack(rr)

对于单个栅格,如下所示:

plot(s[[1]])
text(s[[1]])

2 个答案:

答案 0 :(得分:2)

您可以调整图形参数par并遍历图层进行打印,而不是在整个堆栈上使用plot

set.seed(123)
library(raster)
r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)
rr <- lapply(1:10, function(i) setValues(r1,seq(1,ncell(r1),1)))
s <- stack(rr)

# 3 rows, 4 columns
par(mfrow=c(3,4))

for (ii in 1:nlayers(s)){

  plot(s[[ii]])
  text(s[[ii]])

}

enter image description here

答案 1 :(得分:1)

示例数据

Expression type '(Bool, _)' is ambiguous without more context

简单的方法

set.seed(123)
library(raster)
r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)
rr <- lapply(1:10, function(i) setValues(r1, sample(ncell(r1))))
s <- stack(rr)

Fancier,但有些棘手。它使用全局变量par(mfrow=c(3,4)) for (i in 1:nlayers(s)) { plot(s[[i]]) text(s[[i]]) } ,每次将其与i一起使用时必须将其重置为1。

plot