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

Plotly绘制Treemap如何按百分比区间设置指定自定义颜色

Plotly Treemap 按数值区间指定固定配色实现方案

核心实现逻辑:放弃默认的连续色阶映射规则,先对percentage列做离散分档打标签,再通过离散颜色映射参数把每个档位和指定色值一一绑定,最终图表只会出现要求的三种颜色,不会生成过渡杂色。

具体实现步骤

  • 基于给定的配色规则,给原始DataFrame新增分档列,标记每个区域对应的颜色档位
  • 绘图时将color参数传入新增的分档列,而非原始的连续百分比数值
  • 通过color_discrete_map参数显式指定每个档位对应的十六进制色值,覆盖默认离散色板

完整可运行代码

import pandas as pd
import numpy as np
import plotly.express as px

# 原始测试数据集
data_frame = pd.DataFrame({'region':['AA','AB','AC','AD','AE'],
                           'number':[2,12,6,11,30],
                           'percentage':[94.03,91.23,95.66,97.99,99.22]})

# 按规则给数据打颜色分档标签,逻辑完全匹配给定阈值,无边界歧义
data_frame['color_tag'] = np.where(
    data_frame['percentage'] > 98,
    'green',
    np.where(
        data_frame['percentage'] >= 95,
        'amber',
        'red'
    )
)

# 绘图,指定离散颜色映射
fig = px.treemap(
    data_frame,
    path=[data_frame['region']],
    values=data_frame['number'],
    color=data_frame['color_tag'],
    color_discrete_map={
        'red': '#ff0000',
        'amber': '#ffbf00',
        'green': '#00ff00'
    }
)

fig.show()

效果验证

运行代码后各区块颜色完全匹配规则:

  • AE区域百分比99.22>98,填充绿色#00ff00
  • AC(95.66)、AD(97.99)处于95~98区间,填充琥珀色#ffbf00
  • AA(94.03)、AB(91.23)<95,填充红色#ff0000

全程无额外过渡色生成。

注意:如果后续需要调整区间阈值,只需要修改分档判断里的数值和对应标签映射即可,不需要调整绘图核心逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:01:04