调用sns.kdeplot()出现x参数重复赋值报错问题咨询
报错原因
该报错核心诱因是seaborn版本过低:
- 仅seaborn 0.11及以上版本的
kdeplot支持data、hue、fill参数,也才支持直接传入列名绑定数据集的调用写法。 - 0.10.x及更早的旧版本
kdeplot没有data参数,你传入的data = toplot会被函数识别为第二个位置参数(即y参数的取值),加上你主动传入了x关键字参数,内部调用_bivariate_kdeplot时会判定x参数同时收到了位置参数和关键字参数的赋值,就触发了该报错。
解决方法
方法1(推荐):升级seaborn版本
直接升级seaborn到0.11及以上版本,你现有的代码不需要任何修改就可以正常运行:
# pip安装升级 pip install --upgrade seaborn # conda安装升级 conda update seaborn
方法2:适配旧版本写法
如果暂时无法升级seaborn,可以手动拆分分组绘制,不需要传data参数,直接传入对应列的数值即可:
# 分别绘制不同status的KDE曲线 sns.kdeplot(toplot[toplot['status'] == True]['total_attempts'], fill=True, label='status=True') sns.kdeplot(toplot[toplot['status'] == False]['total_attempts'], fill=True, label='status=False')
内容的提问来源于stack exchange,提问作者vesper
相关产品推荐
相关产品推荐

