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

使用列表推导式绘制多列折线图时遇ValueError报错求助

解决seaborn lineplot绘制多列折线图的ValueError问题

报错原因

你传入的x=['pt']是列表格式,而当data参数指定为DataFrame时,x需要直接传入列名字符串(而非列表)。列表形式会被seaborn当作独立的数值序列,其长度(1)和DataFrame的行数(13)不匹配,因此触发了长度错误。

修正方案

方案1:直接修正参数格式

把x的列表改成字符串,保留y的列名列表即可:

ax = sns.lineplot(data=mt, 
                  x='pt',  # 改为列名字符串
                  y=[c for c in mt.columns if c not in ['pt']],
                  dashes=False)

方案2:转为长格式数据(推荐)

seaborn更适配长格式(long-form)数据,先将宽表转换为长表再绘图,后续调整分组、样式会更灵活:

# 宽表转长表,pt作为分组依据,其他列转为分类和数值
mt_long = mt.melt(id_vars='pt', var_name='指标', value_name='数值')
# 绘制折线图,用hue区分不同指标
ax = sns.lineplot(data=mt_long, x='pt', y='数值', hue='指标', dashes=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:45:43