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

使用R与Plotly制作邮政编码等值区域图遇空白问题求助

解决方案

你的代码存在两个关键问题,直接导致地图空白:

  1. featureidkey参数匹配错误
    featureidkey的作用是指定GeoJSON属性中,与你的locations字段(即邮编)对应的键值。你当前设置为"objectid",但objectid是GeoJSON的内部ID,和你数据框里的邮编完全不匹配。
    先运行str(chi_zips)查看GeoJSON的属性结构,找到存储邮编的字段名(芝加哥数据门户的邮编GeoJSON通常用zip或postal_code,且嵌套在properties下),然后将featureidkey修改为对应的路径,比如"properties.zip"。

  2. 地图中心与缩放级别错误
    你设置的坐标(-95.71, 37.09)是美国中部而非芝加哥的位置,且zoom=2的缩放级别太小,导致芝加哥区域被缩到几乎看不见。芝加哥的中心坐标应为(-87.63, 41.88),建议将zoom调整为10左右。

修改后的示例代码:

# 先检查GeoJSON的属性结构,确认邮编字段
str(chi_zips)

fig <- plot_ly() 
fig <- fig %>% add_trace(
    type="choroplethmapbox",
    geojson=chi_zips,
    locations=as.character(abcd$zip_list),
    z=abcd$Fail,
    colorscale="Viridis",
    # 替换为你实际找到的邮编字段路径
    featureidkey="properties.zip",
    zmin=0,
    zmax=1,
    marker=list(line=list(width=0), opacity=0.5)
  )
fig <- fig %>% layout(
    mapbox=list(
      style="carto-positron",
      zoom = 10,
      center=list(lon= -87.63, lat=41.88))
  )
fig

额外注意事项:

  • 确保数据框中的邮编与GeoJSON中的邮编格式完全一致(均为字符串、无多余空格)
  • 如果GeoJSON加载异常,可用geojsonio::geojson_read()重新加载并验证格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:15:36