Plotly绘制Choropleth地图离线环境下显示白页无法加载如何解决
Plotly Choropleth分级统计图离线无法显示解决方案
问题根因
白屏问题由两个常见原因导致:
- 默认配置下,Plotly调用browser渲染器生成的临时HTML会引用在线CDN的Plotly.js依赖库,离线环境无法加载该资源
- 部分版本Plotly的地理组件默认会请求在线地理投影辅助资源,离线环境下请求失败会打断渲染流程
解决方法
步骤1:配置Plotly内嵌全部JS资源
修改Plotly渲染配置,将所有依赖的JS代码直接嵌入生成的HTML文件,不调用在线CDN资源。
步骤2:确认自定义GeoJSON文件路径正确
确保离线台式机上存放有diaphantinhenglish.geojson文件,且代码中读取路径匹配实际存放路径。
修改后可离线运行的代码示例
import json import numpy as np import pandas as pd import plotly.express as px import plotly.graph_objects as go import plotly.io as pio # 核心修改1:配置渲染时内嵌完整Plotly.js资源,不使用在线CDN pio.renderers.default='browser' pio.renderers.html['include_plotlyjs'] = True # 可选:如果需要直接导出本地HTML文件离线打开,可使用下方导出代码替代fig.show() # fig.write_html("choropleth_vietnam.html", include_plotlyjs=True) vietnam_state=json.load(open("diaphantinhenglish.geojson","r")) df = pd.DataFrame({ 'Name': ['Ha Noi','Ha Giang','Cao Bang','Bac Kan','Tuyen Quang'], 'Count': [3757,26,43,27,208]}) fig=px.choropleth( df, geojson=vietnam_state, featureidkey="properties.Name", locations="Name", color='Count', title="ABC", color_continuous_scale="Aggrnyl") # 核心修改2:明确禁用Geo组件的在线底图加载逻辑 fig.update_geos( fitbounds="locations", visible=False, resolution=50 # 明确使用内置的低精度边界资源,不请求在线高精度资源 ) fig.show()
补充说明
如果修改后仍然白屏,可先将图表导出为本地HTML文件,用文本编辑器打开确认文件大小在3MB以上(说明已成功内嵌Plotly.js资源),再放到离线环境打开即可。
内容的提问来源于stack exchange,提问作者hoa tran
相关产品推荐
相关产品推荐

