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

Plotly:如何为Choropleth地图添加数据标签

实现带数据标签的Plotly美国各州Choropleth地图

方法1:Plotly Express + Scattergeo快速实现

用Plotly Express生成基础地图,再通过add_scattergeo精准添加数据标签,核心是匹配美国州的地理编码规则:

import pandas as pd
import plotly.express as px

# 初始化数据
df = pd.DataFrame({
    'state': ['NY', 'CA', 'FL', 'NJ', 'TX', 'CT', 'MA', 'WA', 'IL', 'GA'],
    'user_id': [10000, 3200, 1600, 1200, 800, 600, 400, 350, 270, 260]
})

# 生成Choropleth基础地图
fig = px.choropleth(
    df,
    locations='state',
    locationmode='USA-states',  # 关键:指定美国州缩写匹配模式
    color='user_id',
    color_continuous_scale='Blues',
    scope='usa',  # 聚焦美国本土地图
    title='各州用户数量分布'
)

# 添加数据标签
fig.add_scattergeo(
    locations=df['state'],
    locationmode='USA-states',
    text=df.apply(lambda x: f"{x['state']}\n{x['user_id']}", axis=1),  # 自定义标签内容
    mode='text',
    textfont=dict(size=12, color='black'),
    hoverinfo='skip'  # 避免悬停信息冲突
)

fig.show()

方法2:Plotly Graph Objects底层控制

如果需要更精细的图层管理,直接用Graph Objects构建:

import pandas as pd
import plotly.graph_objects as go

df = pd.DataFrame({
    'state': ['NY', 'CA', 'FL', 'NJ', 'TX', 'CT', 'MA', 'WA', 'IL', 'GA'],
    'user_id': [10000, 3200, 1600, 1200, 800, 600, 400, 350, 270, 260]
})

fig = go.Figure()

# 添加Choropleth颜色图层
fig.add_trace(go.Choropleth(
    locations=df['state'],
    z=df['user_id'],
    locationmode='USA-states',
    colorscale='Blues',
    colorbar_title='用户数量'
))

# 添加文本标签图层
fig.add_trace(go.Scattergeo(
    locations=df['state'],
    locationmode='USA-states',
    text=df['user_id'].astype(str),
    mode='text',
    textfont=dict(color='black', size=12),
    hoverinfo='none'
))

# 配置地图布局
fig.update_layout(
    title_text='各州用户数量分布',
    geo_scope='usa'
)

fig.show()

关键修复点(解决之前add_scattergeo失败问题)

  • 必须设置locationmode='USA-states':这是让Plotly识别州缩写、自动匹配各州中心坐标的核心,缺失此参数会导致标签位置错乱。
  • mode='text'不可省略:只有设置该模式,Scattergeo才会渲染文本标签,而非默认的点标记。
  • 标签内容自定义:可以通过df.apply生成包含州名+数值的组合标签,提升可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:45:31