假设我有一些空间数据,我想使用sp包中的spplot函数将其绘制出来:

library('sp')
library('lattice')
demo(meuse, ask = FALSE, echo = FALSE)
spplot(meuse.grid[,'dist'])


r - 如何设置spplot的默认主题?-LMLPHP

仅更改一个图即可轻松更改主题,例如col.regions:

spplot(meuse.grid[,'dist'], col.regions=rainbow(100))


r - 如何设置spplot的默认主题?-LMLPHP

但是,如果我想更改所有绘图的col.regions怎么办?我已经尝试了一些功能,例如:

trellis.par.set(sp.theme(set = FALSE, regions = list(col = rainbow(100)))) #1
trellis.par.set(regions = list(col = rainbow(100))) #2
lattice.options(default.theme = sp.theme(set = FALSE, regions = list(col = rainbow(100)))) #3


但是似乎没有任何作用。所以我的问题是-如何正确设置spplot的默认主题?

最佳答案

请查看以下代码,以便为spplot手动重新定义默认配色方案(另请参见?spplot,其中进一步描述set_col_regions)。

## re-define default color scheme
old_theme <- get_col_regions()
new_theme <- set_col_regions(rainbow(100))

## sample data
data("meuse.grid")
coordinates(meuse.grid) <- ~x+y
proj4string(meuse.grid) <- CRS("+init=epsg:28992")
gridded(meuse.grid) <- TRUE

## display data with c
spplot(meuse.grid, zcol = "dist")


r - 如何设置spplot的默认主题?-LMLPHP

自定义的配色方案对于任何随后创建的“ spplot”对象(例如

library(mapview)
spplot(poppendorf, "B007n")


r - 如何设置spplot的默认主题?-LMLPHP

10-07 18:29