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

Jupyter Notebook中Choropleth地图无法显示问题求助

解决英国城市车辆犯罪Choropleth地图无显示问题
  • 核对ID匹配逻辑
    直接检查你的数据集id列和GeoJSON里的属性ID是不是完全一致——比如这个官方 wards 数据的ID是wd15cd这类编码,要是你数据集用的是城市名缩写,肯定匹配不上。可以跑print(UK_city['features'][0]['properties'])看看GeoJSON的属性字段,再和你的数据集ID格式对比。

  • 验证数据关联是否有效
    手动把数据集和GeoJSON属性表关联,看看有没有大量缺失值:

    # 提取GeoJSON里的属性数据
    geojson_df = pd.DataFrame([feat['properties'] for feat in UK_city['features']])
    # 关联你的犯罪数据集,注意替换成GeoJSON对应的ID字段
    merged_df = pd.merge(your_crime_data, geojson_df, left_on='id', right_on='wd15cd')
    # 查看缺失情况
    print(merged_df.isnull().sum())
    

    要是缺失值多,说明ID匹配逻辑错了。

  • 检查可视化库的参数设置
    要是用Plotly,这几个点必须盯紧:

    • geojson参数要传完整的UK_city对象,别传字符串路径
    • locations对应你数据集里的ID列,featureidkey要设成GeoJSON里的ID路径,比如"properties.wd15cd"
    • 加上scope="europe",不然全球视角下英国小到看不见
      给个参考代码片段:
    import plotly.express as px
    
    fig = px.choropleth(your_crime_data,
                        geojson=UK_city,
                        locations='id',
                        featureidkey="properties.wd15cd",
                        color='crime_count',
                        scope="europe",
                        labels={'crime_count':'车辆犯罪数'})
    fig.update_geos(fitbounds="locations", visible=False)
    fig.show()
    
  • 确认GeoJSON数据加载完整
    跑len(UK_city['features'])看看特征数量,正常英国 wards 数据有几千条。要是数量为0,说明GeoJSON没加载成功,重新用下面的代码加载:

    import json
    import requests
    
    url = "https://geoportal.statistics.gov.uk/datasets/ons::wards-dec-2015-full-extent-boundaries-in-gb.geojson"
    response = requests.get(url)
    UK_city = json.loads(response.text)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:56:01