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

使用HvPlot绘制Pandas箱线图时列名引发重叠问题求助

解决hvplot+Plotly扩展箱线图列名重叠问题

问题根源

当使用hvplot结合Plotly扩展绘制宽格式DataFrame(列名为Col1-Col5)的箱线图时出现重叠,是因为旧版hvplot在Plotly后端下,自动解析列名时会误将前缀相同的列归为同一分组,导致数据引用错误。而单字母列名没有前缀重复问题,所以能正常显示。

可行解决方案

  • 显式指定目标列
    不依赖hvplot自动识别列,直接通过y参数明确列出所有要绘制的列,强制指定数据范围:

    import hvplot.pandas
    import pandas as pd
    import numpy as np
    
    # 示例数据
    df = pd.DataFrame({
        'Col1': np.random.normal(0, 1, 100),
        'Col2': np.random.normal(1, 1, 100),
        'Col3': np.random.normal(2, 1, 100),
        'Col4': np.random.normal(3, 1, 100),
        'Col5': np.random.normal(4, 1, 100)
    })
    
    # 显式指定y参数绘制箱线图
    df.hvplot.box(y=['Col1', 'Col2', 'Col3', 'Col4', 'Col5'], backend='plotly')
    
  • 转换为长格式数据绘制
    将宽格式DataFrame转成长格式,通过x参数指定分组列,彻底绕开列名解析的问题:

    # 转成长格式
    df_long = df.melt(var_name='Column', value_name='Value')
    
    # 基于长格式数据绘制箱线图
    df_long.hvplot.box(x='Column', y='Value', backend='plotly')
    
  • 升级依赖版本
    这个问题属于旧版hvplot的已知bug,升级到最新版即可修复:

    pip install --upgrade hvplot plotly pandas
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:04:59