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

如何解决seaborn调用countplot函数时出现的FutureWarning警告?

警告触发原因

Seaborn 0.12及以上版本对绘图函数的参数传递规则做了调整:只有data参数支持作为位置参数传入,其余维度类参数(如x、y、hue等)必须显式通过关键字参数指定,否则就会触发该FutureWarning。
你代码中sns.countplot(ex_emp['dept'])这行直接把列数据作为位置参数传入,没有指定x=关键字,是警告的触发来源。

警告原文:
FutureWarning: 请将以下变量作为关键字参数x传入。从0.12版本开始,唯一有效的位置参数将为data,未显式指定关键字就传入其他参数会导致报错或结果解析错误。

修复方法

修改countplot的参数写法即可,有两种兼容写法可选:

  • 直接给传入的列数据加x=关键字前缀:
sns.countplot(x=ex_emp['dept'])
  • 采用Seaborn官方推荐的标准写法,先传入数据集,再指定要统计的列名:
sns.countplot(data=ex_emp, x='dept')

这种写法代码可读性更强,也完全兼容后续的Seaborn版本。

额外优化提示

你原有代码中plt.figure(figsize=(10,5))的位置放在了绘图语句之后,会导致新建一个空白画布,最终保存的图片没有统计图表,调整语句顺序后的完整可运行代码如下:

import seaborn as sns
import matplotlib.pyplot as plt

# 先设置画布尺寸
plt.figure(figsize=(10,5))
# 修复后的绘图语句
sns.countplot(data=ex_emp, x='dept')
plt.title('Department of Employees Who Left')
plt.savefig('ex_dept.png', bbox_inches='tight')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:57:03