如何使用spplot绘制其他栅格?

TMS*_*TMS 2 gis plot r

我想将SpatialPolygonsDataFrame绘制为一个半透明的主要对象(右侧有图例),但我想将其他栅格(山体阴影)作为背景绘制 - 只是为了制作更好的地图.我需要这样的东西:

spplot(polygons, sp.layout = list(list("raster", myRaster)))
Run Code Online (Sandbox Code Playgroud)

但是看着?spplot,似乎没有可能指定光栅sp.layout.我不能将栅格指定为主要对象,因为主要对象是polygonsdataFrame,其值标度我想在右侧的图例中绘制.

如何在spplot中绘制额外的栅格?

jba*_*ums 6

这是一种方法.可能有一种更简洁的方法来实现它,而无需绘制两次多边形对象,但......

library(sp)
library(rasterVis)
r <- raster(nrow=18, ncol=36)
r[] <- runif(ncell(r)) * 10
r[r > 8] <- NA
pol <- rasterToPolygons(r, function(x) x > 6)
spplot(pol) + levelplot(r) + spplot(pol)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或者:

library(latticeExtra)
spplot(pol) + spplot(r) + spplot(pol)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


编辑

根据@OscarPerpiñán的评论,更好的方法是:

spplot(pol) + as.layer(spplot(r), under = TRUE)
Run Code Online (Sandbox Code Playgroud)

  • 使用`as.layer`可以简化调用:`spplot(pol)+ as.layer(levelplot(r),under = TRUE)`或`spplot(pol)+ as.layer(spplot(r),under = TRUE)`. (3认同)