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

choroplethrzip设置reference_map=FALSE时地图无法正常显示的问题

问题

我用choroplethrzip包绘制密歇根东南部邮政编码的分级统计图,同时通过geom_polygon添加县界叠加层,geom_text添加县标签。当前代码如下:

zip_choropleth(df,
zip_zoom = plot_zips,
reference_map=TRUE) +   
geom_polygon(data = countyref,
aes(x = long, y = lat, group = group),
alpha = 0,
color = "black",
linewidth = 0.2) +   
geom_text(data = mi_county_midpoints,
aes(x = long, y = lat, label = county),
size = 2,
color = "black",
fontface = "bold") 

当reference_map=TRUE时代码运行正常,但改为FALSE或移除该参数时,出现以下错误:

Error in `geom_text()`: Problem while computing aesthetics. Error occurred in the 3rd layer. Caused by error: object 'group' not found

移除geom_text函数后错误消失,但地图显示异常;仅保留zip_choropleth部分则正常。请问如何在无背景参考地图的情况下,绘制带县界和标签的该地图?

补充:数据集格式如下:

regionvalue
480011
480020
4800310
480057
480063
4800922
480145
4801512
4801732

设置reference_map=TRUE时地图显示符合预期。

解决方案

问题根源

当reference_map=FALSE时,zip_choropleth返回的ggplot对象会默认传递全局美学映射(包含group字段),但geom_text调用的mi_county_midpoints数据集没有group列,因此触发报错。同时无参考地图时,坐标系未自动设置,导致地图显示变形。

修正方案

  1. 给geom_polygon和geom_text添加inherit.aes = FALSE参数,切断对全局美学映射的继承;
  2. 手动添加墨卡托坐标系,匹配reference_map=TRUE时的投影规则。

修正后代码

library(choroplethrZip)
library(ggplot2)

zip_choropleth(df,
               zip_zoom = plot_zips,
               reference_map = FALSE) +   
  geom_polygon(data = countyref,
               aes(x = long, y = lat, group = group),
               alpha = 0,
               color = "black",
               linewidth = 0.2,
               inherit.aes = FALSE) +   
  geom_text(data = mi_county_midpoints,
            aes(x = long, y = lat, label = county),
            size = 2,
            color = "black",
            fontface = "bold",
            inherit.aes = FALSE) +
  coord_map("mercator")

关键说明

  • inherit.aes = FALSE:避免后续图层继承zip_choropleth的默认映射,彻底解决group字段找不到的问题;
  • coord_map("mercator"):强制使用墨卡托投影,保证无参考地图时的显示效果和有参考地图时一致,解决地图变形问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:33:24