在使用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]])
答案 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]])
}
答案 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