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

Plotly添加自定义渐变色彩带图例及离散色带转渐变问题咨询

Plotly色带问题解答

1. 自定义独立色带

可以实现和当前图表自带色带不同的独立自定义色带,无需基于现有图表数据生成。
Plotly的色带规则完全支持手动定义,你可以通过colorscale参数传入自定义的颜色映射规则,格式为[[比例值1, 色值1], [比例值2, 色值2], ...],其中比例值范围为0-1,和实际数据的取值范围无关,你可以随意配置渐变规则。如果需要完全脱离当前绘图数据添加额外的独立色带,也可以通过添加无可见元素的虚拟trace绑定自定义色带来实现。

2. 离散色带调整为渐变色带

你当前输出离散色带的核心原因是代码中传入了binning_endpoints参数,该参数的作用是将数值按指定端点分箱,每个分箱对应固定颜色,最终生成离散色标。要得到连续渐变色带,直接删除该参数即可。
如果需要自定义渐变对应的数值区间,还可以传入zmin、zmax参数指定色带覆盖的数值范围,无需适配数据本身的最大最小值。

调整后的示例代码

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']

# 此处可完全自定义颜色列表,不受数据影响
colorscale = ["#f7fbff","#ebf3fb","#deebf7","#d2e3f3","#c6dbef","#b3d2e9","#9ecae1",
              "#85bcdb","#6baed6","#57a0ce","#4292c6","#3082be","#2171b5","#1361a9",
              "#08519c","#0b4083","#08306b"]
fips = df_sample['FIPS'].tolist()
values = df_sample['Unemployment Rate (%)'].tolist()

# 移除binning_endpoints参数,生成连续渐变色带
fig = ff.create_choropleth(
    fips=fips, values=values,
    # zmin=0, zmax=15,  可按需指定色带对应的数值区间
    colorscale=colorscale,
    show_state_data=False,
    show_hover=True, centroid_marker={'opacity': 0},
    asp=2.9, title='USA by Unemployment %',
    legend_title='% unemployed'
)

fig.layout.template = None
fig.write_image("fig1.png", scale=20)
fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:18:01