我想将SpatialPolygonsDataFrame绘制为半透明的主对象(右侧带有图例),但是我想将其他栅格(hillshade)绘制为背景-只是为了制作更好的 map 。我需要类似的东西:

spplot(polygons, sp.layout = list(list("raster", myRaster)))
但是看?spplot,似乎无法在sp.layout中指定栅格。我无法将栅格指定为主要对象,因为主要对象是polygons dataFrame,我想在右侧的图例中绘制其值比例。
如何在spplot中绘制其他栅格?

最佳答案

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

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)

或者:
library(latticeExtra)
spplot(pol) + spplot(r) + spplot(pol)



编辑

根据@OscarPerpiñán的评论,一种更好的方法是:
spplot(pol) + as.layer(spplot(r), under = TRUE)

10-05 20:35