Plotly Express scatter_mapbox标记不显示,如何设置标记大小?
Plotly Express散点地图标记不可见问题解决
问题描述
使用Plotly Express绘制经纬度地图时,包含17条数据的DataFrame(one_line)能正常显示地图,但标记无法绘制,仅鼠标悬停时可见文本;而包含3176条数据的相似脚本中标记正常显示。
用户代码
import plotly.express as px fig = px.scatter_mapbox(one_line, lat="lat", lon="lon", zoom=15, text = 'point_idx', size='size', size_max=15 ) fig.update_layout(mapbox_style="open-street-map", margin={"r":0,"t":0,"l":0,"b":0}) fig.show()
数据样本
lat lon 0 35.843737 139.870344 1 35.843765 139.870372 2 35.843800 139.870407 3 35.843835 139.870441 4 35.843871 139.870476 5 35.843907 139.870511 6 35.843942 139.870545 7 35.843978 139.870580 8 35.844014 139.870614 9 35.844049 139.870648 10 35.844085 139.870682 11 35.844121 139.870715 12 35.844157 139.870749 13 35.844194 139.870783 14 35.844230 139.870817 15 35.844266 139.870850 16 35.844306 139.870887
解决方法
核心问题在于size参数的设置,可通过以下方式解决:
设置固定标记大小:如果不需要根据数据动态调整尺寸,直接将
size设为固定数值,替代依赖size列的设置:import plotly.express as px fig = px.scatter_mapbox(one_line, lat="lat", lon="lon", zoom=15, text='point_idx', size=10, # 固定标记大小 size_max=15 ) fig.update_layout(mapbox_style="open-street-map", margin={"r":0,"t":0,"l":0,"b":0}) fig.show()确保
size列有有效数值:如果需要基于数据列调整大小,检查one_line中是否存在size列,若不存在则添加并赋值:# 给所有点设置相同大小 one_line['size'] = 10 # 运行原代码即可显示标记优化标记可见性:若标记颜色与地图背景对比度低,可强制设置标记颜色:
fig = px.scatter_mapbox(one_line, lat="lat", lon="lon", zoom=15, text='point_idx', size=10, color_discrete_sequence=['red'], # 设置高亮颜色 size_max=15 )
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

