Jupyter notebook中Plotly Choropleth等值区域地图无法显示求助
问题解决思路
- 字段匹配错误排查:你当前设置
locationmode = 'USA-states'时,要求locations参数传入的必须是美国州的两位字母缩写(如CA、NY),你现在传入的是df['State'](大概率是州全称),无法和内置的地图坐标匹配。直接把locations = df['State']改为locations = df['State Code']即可,你代码里text参数用的就是State Code列,这列正好是符合要求的缩写值。 - Plotly版本与Jupyter适配检查:如果是Jupyter Lab环境,需要先安装对应扩展:
jupyter labextension install jupyterlab-plotly,同时升级Plotly到最新版本避免兼容问题:pip install plotly --upgrade。另外可以放弃旧的offline iplot调用方式,直接用Plotly原生的show()方法渲染,代码更简洁。 - 数据有效性检查:先运行
print(df[['State Code','Cases of COVID-19']].isnull().sum())检查是否有空值,再运行print(df['Cases of COVID-19'].dtypes)确认数值列是int/float类型,避免无效数据导致渲染失败。 - 基础环境排查:重启Jupyter内核重新运行所有代码块,检查浏览器没有禁用JavaScript,Plotly图表依赖JS渲染,禁用后会无法加载。
修正后参考代码
import pandas as pd import plotly.graph_objs as go df = pd.read_csv('State-level-data_31_07_2021.csv') data = dict(type='choropleth', locations = df['State Code'], # 替换为州缩写列 locationmode = 'USA-states', colorscale = 'Greens', text = df['State'], z = df['Cases of COVID-19'], colorbar = {'title':"Cases of COVID-19"} ) layout = dict(title = 'Cases of COVID-19 in USA Map', geo = dict(scope='usa') ) choromap = go.Figure(data = [data],layout = layout) choromap.show() # 直接调用原生show方法,无需引入offline依赖
内容的提问来源于stack exchange,提问作者mlboy
相关产品推荐
相关产品推荐

