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

Plotly Treemap绑定color与values同列时父节点颜色不一致如何解决

问题原因

Plotly Express 生成 treemap 时默认对父节点颜色采用平均值聚合规则,和你期望的子节点数值总和映射效果不一致,内部自动计算的<column_name>_sum默认仅用于面积计算和悬停提示,没有直接绑定到颜色参数。
treemap颜色异常效果示例

解决方案

方案1:使用内置参数(推荐,适配Plotly 4.10及以上版本)

官方已在较高版本中新增color_aggregation参数,直接指定聚合规则为总和即可,修改后代码如下:

fig = px.treemap(df,
                 path=sti,
                 values='Size in kB',
                 color='Size in kB',
                 branchvalues='total',
                 color_aggregation='sum')
fig.show()

无需额外处理即可实现父节点颜色按子节点数值总和映射的效果。

方案2:手动修改图表属性(兼容低版本Plotly)

如果使用的版本不支持上述参数,可以生成图表对象后手动替换颜色映射的数值源:

# 先生成原始图表
fig = px.treemap(df,
                 path=sti,
                 values='Size in kB',
                 color='Size in kB',
                 branchvalues='total')
# 将颜色映射值替换为Plotly自动计算的总和值(存储在customdata最后一列)
fig.data[0].marker.colors = fig.data[0].customdata[:, -1]
# 可选:修改颜色条标题更符合语义
fig.update_layout(coloraxis_colorbar_title="总Size in kB")
fig.show()

内容的提问来源于stack exchange,提问作者C.Donau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:54:03