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

如何按gender分类列值设置折线颜色,绘制分性别薪资均值折线图

解决方法

你原代码的问题是仅对job单字段分组,计算得到的是每个岗位对应的全量用户平均薪资,只有一维数据,自然只能画出一条折线,直接传入color参数无法实现按性别拆分折线的需求。

方案1:Pandas 原生实现

分组时同时传入job和gender两个字段,再通过unstack将性别维度转为列,即可自动生成对应不同性别的多条折线:

# 按岗位、性别分组计算平均薪资,将性别转为列索引后绘图
df1.groupby(['job', 'gender'])['salary'].mean().unstack().plot(kind='line')

如果需要自定义两种性别的颜色,可补充color参数:

df1.groupby(['job', 'gender'])['salary'].mean().unstack().plot(
    kind='line',
    color=['#2563eb', '#ea580c'] # 两个颜色分别对应两个性别分类
)

绘图结果会自动生成图例标注不同性别对应的折线。

方案2:Seaborn 实现(更便捷)

用seaborn的lineplot可以直接通过hue参数指定按性别拆分折线,无需手动聚合:

import seaborn as sns
# x为岗位,y为薪资,hue按性别拆分,estimator指定计算均值,关闭置信区间显示
sns.lineplot(data=df1, x='job', y='salary', hue='gender', estimator='mean', errorbar=None)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:57:04