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

Plotly mapbox地图保存为PNG时标记点文本不显示问题咨询

问题原因

你当前代码中Scattermapbox配置的mode='markers'仅会在交互状态的hover弹窗中展示text内容,静态导出PNG时不会渲染hover类的临时内容,因此会出现交互时文本可见、导出后文本丢失的问题。

解决方案

调整Scattermapbox的展示模式,将文本设置为默认固定展示即可,同时可配置文本样式适配显示效果,修改后的完整代码如下:

import plotly.graph_objects as go

mapbox_access_token = open(".mapbox_token").read()

fig = go.Figure(go.Scattermapbox(
        lat=['45.5017'],
        lon=['-73.5673'],
        # 修改mode为markers+text,同时展示标记和文本
        mode='markers+text',
        marker=go.scattermapbox.Marker(
            size=14
        ),
        text=['Montreal'],
        # 配置文本位置,可选top/right/bottom/left等
        textposition='top right',
        # 可选配置文本字体样式
        textfont=dict(
            size=16,
            color='black'
        )
    ))

fig.update_layout(
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,
        center=go.layout.mapbox.Center(
            lat=45,
            lon=-73
        ),
        pitch=0,
        zoom=5
    )
)

# 静态导出PNG需要先安装kaleido库:pip install kaleido
fig.write_image("montreal_map.png")
fig.show()
补充说明
  • 不建议直接在Jupyter的交互界面右键保存图片,优先使用fig.write_image方法导出,可保证所有元素渲染完整
  • 如果需要添加和点位无关的独立注释,可以使用fig.add_annotation()方法自定义注释内容、位置、样式
  • 导出时如果出现地图底图加载不全的问题,可以适当增加write_image的width、height参数,或者调整scale参数提高导出清晰度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:39:04