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
相关产品推荐
相关产品推荐

