如何在R中用base R/raster包绘制无图例叠加栅格图层
解决R中叠加栅格图层时比例尺重叠问题(Base R/raster包实现)
需求:使用Base R或raster包绘制无图例、无侧边比例尺的栅格底图,再叠加其他栅格图层,仅保留上层图层的比例尺,避免重叠。
原代码问题:绘制底图env时默认显示比例尺,叠加popLayer后两个比例尺重叠,无法辨认。
解决方案
在绘制底图时,通过legend=FALSE参数关闭底图的图例/比例尺输出,仅让上层图层显示比例尺即可。
修改后的完整代码
library(raster) library(RColorBrewer) # 定义通用变量 extent.x <- 100 extent.y <- 100 resol <- 100 # 半森林地形图层(底图) env <- raster(nrow=extent.x,ncol=extent.y,xmn=0,xmx=(extent.x*resol),ymn=0,ymx=(extent.y*resol),resolution=resol) env[1:50 ,] <- 1 # 平原 env[51:100 ,] <- 2 # 森林 # 绘制底图时关闭图例/比例尺 plot(env, legend = FALSE) # 示例叠加图层 popLayer <- env popLayer[,] <- 0 popLayer[50,50] <- 1000 # 定义人口图层的颜色渐变 rasterColors <- colorRampPalette(c("white", "red")) # 设置渐变断点 cuts <- c(0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000) # 处理人口图层的0值为NA,避免覆盖底图 popLayer[popLayer == 0] <- NA # 叠加绘制,保留上层比例尺 plot(popLayer, add = TRUE, col = rasterColors(2))
关键说明
plot(env, legend = FALSE):关闭底图的图例和侧边比例尺,仅绘制栅格内容- 如果需要同时关闭底图的坐标轴,可以额外添加
axes=FALSE参数,即plot(env, legend = FALSE, axes = FALSE) - 上层图层
popLayer的绘制保持默认设置,会正常显示其对应的比例尺,不会与底图元素重叠
内容的提问来源于stack exchange,提问作者ImranS
相关产品推荐
相关产品推荐

