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

Plotly Parcats平行类别图自定义颜色触发ValueError问题求助

报错根因

触发报错的直接原因是传入line.color的tips_df.quantized_tip字段值为字符串类型(报错信息里显示的'Low'就是该字段的实际值),但你配置的colorscale是基于0、1、2数值点位做的颜色映射,二者数据类型不匹配,Parcats组件无法自动完成字符串分类到数值色阶的对齐。
另外你当前代码里给quantized_tip维度配置的categoryarray=[0, 1, 2]也是无效配置,该维度的实际值是字符串分类,这个参数必须传入和维度值类型一致的类别列表才能生效。

修复方法

以下两种方法都可以实现最后一个维度各类别匹配专属颜色的需求:

  • 方法1:数值编码映射适配数值色阶
    先将字符串分类值映射为和色阶点位对应的整数值,再传入颜色参数即可:
    # 按你需要的颜色对应关系配置映射,key替换为quantized_tip字段的实际类别值
    cat_to_num = {"Low": 0, "Medium": 1, "High": 2}
    line_color = tips_df["quantized_tip"].map(cat_to_num)
    colorscale = [[0, 'lightsteelblue'], [1, 'mediumseagreen'], [2, 'yellow']]
    
    # 修正维度的categoryarray配置,保证和映射顺序一致
    quantized_tip = go.parcats.Dimension(
        values = tips_df['quantized_tip'], 
        label = "Quantized tip",
        categoryorder = "category ascending", 
        categoryarray=["Low", "Medium", "High"],
    )
    
    # 绘图时传入处理后的颜色值
    fig = go.Figure(data = [go.Parcats(
        dimensions=[sex_dim, smoker_dim, day_dim, time_dim, size_dim, quantized_total_bill, quantized_tip],
        line={'color': line_color, 'colorscale': colorscale}
    )])
    
  • 方法2:直接传入逐样本的颜色值
    不需要配置colorscale,直接把每个样本所属类别对应的颜色名/十六进制色值组成序列传入line.color即可,逻辑更直观:
    # 配置类别到颜色的直接映射
    cat_to_color = {"Low": "lightsteelblue", "Medium": "mediumseagreen", "High": "yellow"}
    line_color = tips_df["quantized_tip"].map(cat_to_color)
    
    # 同样修正维度的categoryarray配置
    quantized_tip = go.parcats.Dimension(
        values = tips_df['quantized_tip'], 
        label = "Quantized tip",
        categoryorder = "category ascending", 
        categoryarray=["Low", "Medium", "High"],
    )
    
    # 绘图时不需要传colorscale参数
    fig = go.Figure(data = [go.Parcats(
        dimensions=[sex_dim, smoker_dim, day_dim, time_dim, size_dim, quantized_total_bill, quantized_tip],
        line={'color': line_color}
    )])
    

后续update_traces和show的逻辑保持原有写法即可,修正后所有属于同一quantized_tip类别的流线条都会显示为指定的专属颜色,不会再触发类型报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:57:20