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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:39:00