如何在Python的Plotly气泡地图中添加气泡上方的数值文本标签?
如何在Plotly Express的scatter_mapbox气泡上方添加文本标签
你可以通过循环调用fig.add_annotation()为每个城市的气泡添加文本标签,关键是要正确设置注释的坐标、文本内容和位置参数。以下是修改后的完整代码:
import plotly import plotly.express as px import pandas as pd df = pd.DataFrame(dict( CityName=['New York', 'Boston'], Latitude=[40.7128, 42.3601], Longitude=[-74.0060, -71.0589], Total=[100,200] )) token = 'PASTE YOUR TOKEN HERE' px.set_mapbox_access_token(token) # 生成基础气泡地图 fig = px.scatter_mapbox(df, lat='Latitude', lon='Longitude', hover_name='CityName', size='Total') # 循环添加文本标签 for idx, row in df.iterrows(): fig.add_annotation( x=row['Longitude'], y=row['Latitude'], text=str(row['Total']), showarrow=False, yanchor='bottom', # 让标签在气泡上方 font=dict(size=12, color='black') ) plotly.offline.plot(fig)
关键说明:
- 循环遍历DataFrame的每一行,为每个城市单独添加注释
x和y分别对应经度和纬度,确保标签定位准确showarrow=False隐藏注释的箭头,只显示文本yanchor='bottom'设置文本的底部对齐到气泡顶部,避免标签覆盖气泡- 可以通过
font参数调整标签的大小和颜色,适配地图风格
之前你尝试fig.add_annotation()没成功,大概率是没有针对每个数据点单独设置坐标,或者位置参数没调整到位。这个方法不需要切换到go.Scattermapbox,直接在Plotly Express生成的图上扩展即可,符合你“简便修改”的需求。
内容的提问来源于stack exchange,提问作者Wilbert J. Seoane
相关产品推荐
相关产品推荐

