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

如何在Plotly.py的分级统计图上显示地图标签?

解决Plotly Choroplethmapbox遮挡地图标签的问题

核心解决方案是利用Plotly的below参数,将分级统计图层渲染在底图的标签图层下方,这样就能让地名等标签显示在颜色区域之上,同时保持图层完全不透明。

修改后的代码

import plotly.graph_objects as go

fig = go.Figure(go.Choroplethmapbox(
    geojson=counties, 
    locations=df.fips, 
    z=df.data,
    zmin=0, zmax=1,
    marker_opacity=1,
    below='labels'  # 关键参数:让分级图层位于标签下方
))
fig.update_layout(
    mapbox_style='open-street-map',
    mapbox_zoom=3,
    mapbox_center={'lat': 37.0902, 'lon': -95.7129},
    margin={'r': 0, 't': 0, 'l': 0, 'b': 0}
)
fig.show()

补充说明

如果使用open-street-map样式时below='labels'效果不佳,可以切换到Mapbox官方的矢量样式(需要注册Mapbox获取免费访问令牌),这类样式的图层层级更明确:

fig.update_layout(
    mapbox_style='mapbox://styles/mapbox/light-v10',
    mapbox_access_token='你的Mapbox令牌',
    mapbox_zoom=3,
    mapbox_center={'lat': 37.0902, 'lon': -95.7129},
    margin={'r': 0, 't': 0, 'l': 0, 'b': 0}
)

原理:默认情况下Choroplethmapbox会覆盖底图所有元素,below='labels'参数强制将颜色图层放在底图的标签层之下,既保留了颜色区域的完全不透明,又能清晰看到地名标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:54:14