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

如何让seaborn barplot的柱形按指定规则完成排序?

问题原因

你对原始明细数据集做排序的操作不会生效,seaborn的barplot绘制分类条形图时,会自动对分类字段(job_title)去重,默认按分类的字符顺序排列,不会沿用原始明细数据的行顺序。且barplot默认展示的是每个分类下数值字段的均值,你需要先按照每个职位的平均薪资计算出正确的职位排序,再传递给绘图参数。

调整后的代码

# 第一步:计算每个职位的平均薪资,按薪资升序得到排序后的职位列表
# 如果需要降序排列,在sort_values后添加参数 ascending=False
job_order = df.groupby('job_title')['salary_in_usd'].mean().sort_values().index

job_salary = df[['job_title', 'salary_in_usd']]
fig = plt.figure(figsize=(14,12))
sns.barplot(x='job_title',
        y='salary_in_usd',
         data=job_salary,
         ci=None,
         order=job_order) # 传入预设的排序规则
plt.xticks(rotation=90)
plt.tight_layout() # 可选,避免底部职位名称被截断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:04