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

Plotly Express冰柱图自定义排序与混合状态默认颜色调整问题

Plotly Express 冰柱图问题解决方案

问题1:季度未按自然顺序排列

px.icicle 默认按照每个分类下的数值总和降序排序,Q2下有2条数据总数值更高,所以会排在Q1前面。你可以直接在绘图参数中添加category_orders指定季度排序规则,无需修改原数据集。

问题2:多状态父节点默认显示紫色

父节点包含多种Status取值时,不属于你配置的color_discrete_map中的任意状态值,会调用Plotly默认离散色板的颜色,也就是你看到的紫色。你可以通过default_color参数指定这类混合状态节点的默认颜色,不会影响原有按Status染色的逻辑。
另外注意你当前代码中color_discrete_map的键为英文,与数据集里中文的Status取值不匹配,会导致颜色规则不生效,需要对应修改。

修复后完整代码:

fig = px.icicle(df, 
                path=['Objective','Quarter','Task','Status'], 
                values='Value', 
                color='Status',
                # 键要和数据集Status列的实际取值完全匹配
                color_discrete_map={'未开始':'red','进行中':'yellow','已完成':'green'},
                # 指定季度按自然顺序排列
                category_orders={'Quarter': [1,2,3,4]},
                # 混合状态节点默认显示浅灰色,替换原有紫色
                default_color='lightgray',
                maxdepth=3
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:48:02