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
相关产品推荐
相关产品推荐

