2

我有一个 for 循环,可以通过 spplot 进行插值和绘制栅格图。它提供了一个颜色条,但每个图中的标签都会发生变化。您可以在下面看到差异。 在此处输入图像描述 在此处输入图像描述

我想在 ssplot 中使用具有相同标签的相同颜色条,但我无法根据相同的地图图例绘制图形。

这是代码的最后一部分

为了 (...) {

...

WElev.IDW = idw(公式 = 变量~1,位置 = spdf2,新数据 = r.pts)

mypath <- file.path("C:","...", paste("WElevMonth", colnames(variable), ".png", sep = ""))

png(文件名=我的路径)

打印(spplot(WElev.IDW[“var1.pred”]))

dev.off() }

4

1 回答 1

2

stack()你的情节,spplot以及RasterStack

s <- stack(raster1, raster2)
spplot(s)

由此产生的情节将有一个共同的传说。


如果您希望所有图彼此独立,但想设置色标的限制和中断,请使用at参数。传递at一个中断向量。看到这个帖子

首先,堆叠所有栅格,以便您可以快速计算堆栈的最小值和最大值。使用这些值来通知您的图例限制和中断。

# max and min of the stack
max_r  <- cellStats(s, max) # max of raster stack: legend upper limit
min_r  <- cellStats(s, min) # min of raster Stack: legend lower limit
breaks <- (max_r - min_r)/15 # increase denominator for more breaks
lab    <- seq(min_r, max_r, by = breaks) # create the vector of legend breaks

# now run your for loop and within `spplot`, set the same legend with `at`
for(i in 1:n){
  spplot(raster, at = lab)
  ...
}
于 2018-09-18T19:03:23.640 回答