You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Spatrastermap叠加到已有Spatrastermap实现分层显示?

实现分层地图显示:NA区域展示底层内容

要实现「x为白色(NA)区域显示底层地图p,有颜色区域显示上层地图x」的效果,只需利用ggplot的图层叠加特性,将上层栅格的NA区域设为透明即可。

完整实现代码

library(terra)
library(ggplot2)

# 读取示例高程栅格数据
f <- system.file("ex/elev.tif", package = "terra")
r <- rast(f)

# 绘制底层等高线图
p <- ggplot() + geom_spatraster_contour(data = r, color = "black")

# 对栅格分类:将低于400的数值设为NA,得到上层栅格x
x <- classify(r, cbind(-Inf, 400, NA))

# 合并图层:先画底层等高线,再叠加上层栅格(NA区域透明)
combined_plot <- ggplot() +
  geom_spatraster_contour(data = r, color = "black") +
  geom_spatraster(data = x) +
  scale_fill_viridis_c(na.value = "transparent") +
  theme_minimal()

print(combined_plot)

关键说明

  • 图层顺序:必须先绘制底层的等高线图层,再叠加上层栅格,确保上层覆盖在底层之上
  • 透明设置:scale_fill_viridis_c(na.value = "transparent") 是核心配置,它将上层栅格的NA区域设为完全透明,让底层等高线可以透过显示
  • 配色替换:若需更改配色,可将scale_fill_viridis_c替换为其他配色函数(如scale_fill_gradient)

内容的提问来源于stack exchange,提问作者MPB_2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 22:44:56