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

Plotly Express绘制邮政编码地图遇运行无响应问题求助

问题描述

参考相关教程编写了如下代码,传入仅含25条数据的df_mover数据框(包含my_zip(object类型)和switcher_flag字段),在Jupyter Notebook中运行后一直无响应:

import plotly.express as px
 
from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)
    
#import libraries
import pandas as pd
import plotly.express as px
 

fig = px.choropleth(df_mover, geojson=counties, 
                    locations='my_zip', 
                    locationmode="USA-states", 
                    color='switcher_flag',
                    range_color=(10000, 100000),
                    scope="usa"
                    )
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
可能的原因及解决方法
  • 地理标识完全不匹配:你加载的是县级别(FIPS编码)的GeoJSON,但locationmode设为"USA-states",同时用my_zip(邮政编码)作为匹配字段,三者逻辑冲突。Plotly尝试匹配不兼容的地理数据时,会陷入无效计算导致无响应。
    • 解决:如果用邮政编码绘图,需更换为包含美国ZIP编码的GeoJSON;如果用现有县GeoJSON,要把locations换成FIPS编码,locationmode改为"geojson-id"(对应GeoJSON里的id字段);如果要按州绘制,需将数据聚合到州级别,用州缩写/名称作为locations,locationmode设为"USA-states",同时替换为州级GeoJSON。
  • 数据类型不兼容:my_zip是object类型,若GeoJSON中对应标识是数值类型,会导致匹配失败。检查GeoJSON的id字段类型,将my_zip转换为一致的类型(比如转成字符串或数值)。
  • Jupyter渲染环境问题:Plotly的交互式渲染依赖特定扩展,可尝试:
    • 用fig.show(renderer="svg")或fig.show(renderer="png")生成静态图测试是否正常;
    • 安装并启用ipywidgets:运行pip install ipywidgets后重启Notebook。
  • 颜色范围设置不合理:range_color设置为(10000, 100000),如果switcher_flag的实际值都不在这个区间内,可能引发渲染异常。先执行df_mover['switcher_flag'].describe()确认数据范围,调整range_color或直接去掉该参数让Plotly自动适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:55:17