在 rasterVis levelplot 中更改添加的形状文件的背景颜色

Change the background color of the added shape file in rasterVis levelplot

我想改变海洋的颜色(在 shapefile 边界之外)。我可以裁剪光栅并更改背景颜色,但在这里我想用添加的 shapefile 来做到这一点。

library(raster)
library(rasterVis)
library(maps)
library(maptools)
library(mapdata)

r <- raster(nrow=361, ncol=576, ymn=-90, ymx=90) 
values(r) <- 1:ncell(r)
data(wrld_simpl, package = "maptools")
levelplot(r)+ layer(sp.polygons(wrld_simpl, lwd=0.1, col='gray'))

首先,用 SpatialPolygons 对象遮盖栅格。未覆盖的单元格 由它设置为 NA.

land <- mask(r, wrld_simpl)

现在,更改背景颜色(用于 NA 单元格):

catTheme <- rasterTheme(panel.background = list(col='lightskyblue1'))

最后,显示结果:

levelplot(land, par.settings = catTheme) +
    layer(sp.polygons(wrld_simpl,
                      lwd=0.1, col='gray'))