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

如何为Plotly choropleth添加FIPS详情悬浮标签?

解决方案:在Plotly Figure Factory choropleth地图中添加FIPS悬浮详情

要在地图悬浮时展示FIPS等自定义信息,不需要改变现有列表传参的逻辑,直接通过以下两种方式实现:

方法一:创建地图时直接传入自定义文本参数

ff.create_choropleth支持text参数,你可以提前构造好每个区域的悬浮提示内容,传入这个参数即可。修改后的完整代码如下:

import plotly.figure_factory as ff
import numpy as np
import pandas as pd

df_sample = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/laucnty16.csv')
df_sample['State FIPS Code'] = df_sample['State FIPS Code'].apply(lambda x: str(x).zfill(2))
df_sample['County FIPS Code'] = df_sample['County FIPS Code'].apply(lambda x: str(x).zfill(3))
df_sample['FIPS'] = df_sample['State FIPS Code'] + df_sample['County FIPS Code']

# 构造悬浮提示文本,可自定义显示内容
hover_texts = df_sample.apply(lambda row: (
    f"FIPS编码: {row['FIPS']}<br>"
    f"地区: {row['County Name']}, {row['State']}<br>"
    f"失业率: {row['Unemployment Rate (%)']}%"
), axis=1).tolist()

colorscale = ["#f7fbff", "#ebf3fb", "#deebf7", "#d2e3f3", "#c6dbef", "#b3d2e9", "#9ecae1",
    "#85bcdb", "#6baed6", "#57a0ce", "#4292c6", "#3082be", "#2171b5", "#1361a9",
    "#08519c", "#0b4083", "#08306b"
]
endpts = list(np.linspace(1, 12, len(colorscale) - 1))
fips = df_sample['FIPS'].tolist()
values = df_sample['Unemployment Rate (%)'].tolist()

fig = ff.create_choropleth(
    fips=fips, values=values, scope=['usa'],
    binning_endpoints=endpts, colorscale=colorscale,
    show_state_data=False,
    show_hover=True,
    text=hover_texts,  # 新增:传入自定义悬浮文本
    asp = 2.9,
    title_text = 'USA by Unemployment %',
    legend_title = '% unemployed'
)
fig.layout.template = None
fig.show()

方法二:生成地图后修改悬浮提示内容

如果已经生成了figure对象,可以直接修改对应trace的hovertext属性,替换默认的悬浮信息:

# (前面的代码保持不变,到生成fig之后)
fig = ff.create_choropleth(
    fips=fips, values=values, scope=['usa'],
    binning_endpoints=endpts, colorscale=colorscale,
    show_state_data=False,
    show_hover=True,
    asp = 2.9,
    title_text = 'USA by Unemployment %',
    legend_title = '% unemployed'
)

# 修改悬浮提示文本
fig.data[0].hovertext = df_sample.apply(lambda row: (
    f"FIPS编码: {row['FIPS']}<br>"
    f"地区: {row['County Name']}, {row['State']}<br>"
    f"失业率: {row['Unemployment Rate (%)']}%"
), axis=1).tolist()
# 可选:设置hoverinfo确保显示自定义文本
fig.data[0].hoverinfo = 'text'

fig.layout.template = None
fig.show()

两种方法都能实现悬浮时显示FIPS编码及其他你需要的信息,你可以根据需求选择其中一种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:55:59