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

Plotly树形图如何基于矩形自身名称而非父节点着色?

实现统一节点名称着色的树形图

可以实现每个节点按自身名称统一着色的需求,核心思路是自定义颜色映射字典,然后遍历树形图的所有节点,根据节点名称替换对应的颜色。

具体代码示例

import pandas as pd
import plotly.express as px    

# 原始数据
df = pd.DataFrame({'Parent': ['Alba', 'John', 'John', 'Alba'],
                   'Child': ['John', 'Alba', 'Jane', 'Mark']})

# 创建颜色映射:每个名称对应固定颜色
color_map = {
    'Alba': 'blue',
    'John': 'red',
    'Jane': 'green',
    'Mark': 'orange'
}

# 生成基础树形图
fig = px.treemap(df, path=['Parent', 'Child'])

# 遍历所有节点,根据名称替换颜色
for trace in fig.data:
    # 获取每个节点的标签(即节点名称)
    node_labels = trace.labels
    # 按颜色映射生成对应颜色列表
    updated_colors = [color_map[label] for label in node_labels]
    # 更新节点颜色
    trace.marker.colors = updated_colors

# 显示图形
fig.show()

代码说明

  • color_map:自定义每个节点名称对应的固定颜色,你可以根据需求修改颜色值(支持颜色名称、十六进制码等格式)。
  • 遍历fig.data中的每个trace,获取节点标签后,用颜色映射替换默认的层级着色逻辑,确保同一名称的节点无论处于父/子层级,颜色都保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:20:32