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

如何使用Python版Plotly自定义平行类别图的颜色样式?

如何用Plotly创建自定义颜色的平行类别图(Parcats)

我明白你在尝试自定义平行类别图颜色时遇到了文档缺失的问题,这里给你一个完整的实现示例,正好匹配你描述的3列结构(1个单类别列+2个双类别列):

完整实现代码

import plotly.graph_objects as go
import pandas as pd

# 构造数据集:包含Base列与另外两列的所有可能组合
df = pd.DataFrame({
    'Base': ['Base'] * 4,
    'Column1': ['10', '10', '15', '15'],
    'Column2': ['10', '15', '10', '15']
})

# 自定义颜色数组:每个类别组合对应一个独特颜色
custom_colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4']

fig = go.Figure()

fig.add_trace(go.Parcats(
    dimensions=[
        {'label': 'Base', 'values': df['Base']},
        {'label': 'Column 1', 'values': df['Column1']},
        {'label': 'Column 2', 'values': df['Column2']}
    ],
    line={
        'color': custom_colors,  # 直接为每个线条分配自定义颜色
        'showscale': True,  # 开启颜色条显示
        'colorbar': {'title': '组合颜色'}  # 设置颜色条标题
    }
))

fig.update_layout(title='自定义颜色的平行类别图')
fig.show()

关键细节解释

  1. 数据集构造:
    我们创建了4行数据,覆盖了Base列与另外两列(10/15)的所有组合,确保每个连接线条都能被单独分配颜色。

  2. 直接颜色赋值:
    通过line.color传入颜色字符串数组,每个元素对应数据行的线条颜色,这种方式最直观,适合固定组合的自定义场景。

  3. 数值映射颜色(可选):
    如果需要根据某个数值变量动态分配颜色,可以改用数值映射的方式:

    # 添加数值列用于颜色映射
    df['score'] = [10, 20, 30, 40]
    
    fig.add_trace(go.Parcats(
        dimensions=[
            {'label': 'Base', 'values': df['Base']},
            {'label': 'Column 1', 'values': df['Column1']},
            {'label': 'Column 2', 'values': df['Column2']}
        ],
        line={
            'color': df['score'],
            'colorscale': [[0, '#FF6B6B'], [0.33, '#4ECDC4'], [0.66, '#45B7D1'], [1, '#96CEB4']],
            'showscale': True,
            'colorbar': {'title': '评分'}
        }
    ))
    
  4. 单类别列处理:
    对于只有一个类别的Base列,Plotly会自动处理它与其他列的所有连接,只要你的数据包含完整组合,就能正常显示自定义颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:37:36