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

为什么我的Python Seaborn lmplot代码运行时报ValueError错误?

问题原因与解决方法

报错原因

使用hue='sex'参数后,sns.lmplot()会将原始数据集按性别拆分为两个独立子组分别绘图,你传入scatter_kws的s参数是完整的tips['size']序列,长度与拆分后的单个子组数据长度不匹配,因此触发维度不符的报错。

解决方法

方案1:固定点大小

如果不需要点大小关联size字段的数值,直接把s设为固定数值即可:

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset('tips')
scatter = sns.lmplot(
    x='total_bill', 
    y='tip', 
    data=tips, 
    hue='sex', 
    fit_reg=False, 
    markers=['o','x'],
    scatter_kws={"s": 50}
)
plt.show()

方案2:保留点大小映射逻辑

如果需要点的大小对应size字段的数值,直接通过seaborn层面的size参数做映射,框架会自动处理分组后的维度匹配问题:

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset('tips')
scatter = sns.lmplot(
    x='total_bill', 
    y='tip', 
    data=tips, 
    hue='sex',
    size='size',
    sizes=(20, 200),
    fit_reg=False, 
    markers=['o','x']
)
plt.show()

注:若使用seaborn 0.12及以上版本,可将上述代码中的size参数替换为s,用法一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:36:00