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

Plotly Graph Objects离散色条地图:color_discrete_sequence等效方案问询

Plotly Graph Objects实现离散色条Choropleth地图

Plotly Graph Objects里没有直接对应color_discrete_sequence的参数,但可以通过自定义颜色映射+手动配置色条实现完全等效的离散色条效果,同时支持多图层绘图。

核心实现步骤

    1. 定义离散颜色序列:提前准备好对应类别的颜色值列表
    1. 建立类别-颜色映射字典:将数据中的分类标签和颜色一一绑定
    1. 转换数据颜色列:把原数据的分类列转换成对应的颜色值
    1. 配置Choropleth轨迹:手动指定marker颜色,并自定义色条的标签和显示逻辑

代码示例

import plotly.graph_objects as go
import pandas as pd

# 示例数据:美国州+分类标签
df = pd.DataFrame({
    'state': ['CA', 'TX', 'NY', 'FL'],
    'category': ['高', '中', '低', '高'],
    'fips': ['06', '48', '36', '12']  # 州FIPS编码
})

# 1. 定义离散颜色序列
color_sequence = ["#FF4500", "#FFD700", "#32CD32"]

# 2. 建立分类-颜色映射
color_mapping = {
    "高": color_sequence[0],
    "中": color_sequence[1],
    "低": color_sequence[2]
}

# 3. 为数据添加颜色列
df['trace_color'] = df['category'].map(color_mapping)

# 4. 创建Choropleth轨迹并配置离散色条
fig = go.Figure()

fig.add_trace(go.Choropleth(
    locations=df['fips'],
    locationmode='USA-states',
    # 手动指定每个区域的颜色
    marker=dict(
        colors=df['trace_color'],
        line=dict(color='white', width=2)
    ),
    # 自定义离散色条:对应分类标签
    colorbar=dict(
        tickmode='array',
        tickvals=[0, 1, 2],  # 对应颜色序列的索引
        ticktext=["高", "中", "低"],  # 显示的分类标签
        title=dict(text="风险等级"),
        tickfont=dict(size=10)
    ),
    # z参数仅用于绑定色条位置,实际颜色由marker.colors控制
    z=[0, 1, 2, 0],
    zauto=False,
    zmin=0,
    zmax=2
))

# 添加其他图层示例(比如散点)
fig.add_trace(go.Scattergeo(
    locations=df['fips'],
    locationmode='USA-states',
    text=df['state'],
    mode='text',
    textfont=dict(size=12, color='black')
))

# 布局设置
fig.update_layout(
    title_text="带离散色条的多图层Choropleth地图",
    geo_scope='usa',
    height=600
)

fig.show()

关键说明

  • 关闭自动颜色缩放:通过zauto=False+固定zmin/zmax,确保色条和自定义颜色完全对应
  • 多图层兼容:直接用fig.add_trace()添加任意类型的Plotly Graph Objects轨迹,不会影响离散色条的显示
  • 色条自定义:可以通过colorbar参数调整标签位置、字体、颜色等样式,完全匹配需求效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:01:32