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

Geo*_*-sp 2 plot r raster lattice r-raster

我想更改海洋颜色(在 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'))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Osc*_*ñán 5

首先,使用 SpatialPolygons 对象遮罩 Raster。未覆盖的单元格设置为 NA。

land <- mask(r, wrld_simpl)
Run Code Online (Sandbox Code Playgroud)

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

catTheme <- rasterTheme(panel.background = list(col='lightskyblue1'))
Run Code Online (Sandbox Code Playgroud)

最后,显示结果:

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

水平图