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

基于自定义GeoJSON创建Plotly等值区域图遇问题求助

问题排查与修复方案

核心问题

你的代码无法正确渲染 choropleth 地图,根源在于两个匹配错误:

  1. 类型不匹配:GeoJSON 里的 properties.AGS 是带前导零的字符串(如 "01001"),但你生成的 fips 列是整数,Plotly 无法完成关联匹配。
  2. 编码无效:德国县的 AGS 编码是5位格式,你用 range(1,403) 生成的1-402整数不仅缺少前导零,且和实际存在的AGS编码完全不对应,导致大部分区域无法匹配。

修复代码

import requests
import pandas as pd
import numpy as np
import plotly.express as px

# 加载GeoJSON数据
polygons = requests.get("https://raw.githubusercontent.com/JohnSmith1790/bigdata/main/landkreise_simplify0.geo.json").json()

# 提取GeoJSON中所有真实的AGS编码
valid_ags_codes = [feat["properties"]["AGS"] for feat in polygons["features"]]

# 创建与AGS编码完全匹配的数据集
df = pd.DataFrame({
    "ags": valid_ags_codes,
    "unemp": np.random.uniform(0.0, 501, len(valid_ags_codes))
})

fig = px.choropleth(
    df,
    geojson=polygons,
    locations="ags",
    featureidkey="properties.AGS",
    color="unemp",
    color_continuous_scale="viridis",
    range_color=(0, 501),
    labels={"unemp": "Gesamtscore"}
)   

fig.update_layout(margin={"r": 0, "t": 0, "l": 0, "b": 0})
fig.update_geos(fitbounds="locations", visible=True)
fig.show()

修复说明

  • 直接从GeoJSON中提取真实的AGS编码作为关联键,保证数据类型(字符串)和格式(5位带前导零)完全匹配Plotly的要求。
  • 不再使用虚构的连续整数作为编码,确保每个地理区域都能找到对应的数据,地图可以正确渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:38:31