绘制整个栅格堆栈时添加栅格值
Adding raster values when plotting a whole raster stack
如何在使用 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]])
您可以调整图形参数 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]])
}
示例数据
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)
简单的方法
par(mfrow=c(3,4))
for (i in 1:nlayers(s)) {
plot(s[[i]])
text(s[[i]])
}
更高级,但更棘手。它使用一个全局变量 i
,每次使用它之前必须将其重置为 1 plot
f <- function() { text(s[[i]]); i <<- i + 1 }
i <- 1
plot(s, addfun=f)
如何在使用 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]])
您可以调整图形参数 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]])
}
示例数据
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)
简单的方法
par(mfrow=c(3,4))
for (i in 1:nlayers(s)) {
plot(s[[i]])
text(s[[i]])
}
更高级,但更棘手。它使用一个全局变量 i
,每次使用它之前必须将其重置为 1 plot
f <- function() { text(s[[i]]); i <<- i + 1 }
i <- 1
plot(s, addfun=f)