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

使用geom_sf叠加法、德地图时遇mapping错误的解决求助

解决geom_sf绘制多国地图的错误问题

错误原因很明确:geom_sf()函数的第一个参数是映射(mapping),而非数据集。你直接把de_sf放在第一个参数位置,R会将其识别为映射对象,而不是要绘制的空间数据,因此触发mapping must be created by aes()的错误。

修正后的代码

library(ggplot2)
library(sf)
library(raster)

fr_sf = st_as_sf(getData("GADM", country="FRA", level=1))
de_sf = st_as_sf(getData("GADM", country="DEU", level=0))

ggplot() +  # 可不指定初始数据集,后续图层分别指定对应数据
  geom_sf(data = fr_sf, fill = "gray90") + 
  geom_sf(data = de_sf, fill = "gray90")

关键说明

  • 调用geom_sf()时,必须通过data =参数明确指定要使用的空间数据集,避免和第一个位置的mapping参数混淆。
  • 初始ggplot()不传入数据集,后续每个图层各自指定data,这种写法更清晰,适配多空间数据图层的绘制场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:41:33