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

如何调整Matplotlib条形图以展示各部门平均薪资?

实现各部门平均薪资条形图的修改方案

你当前代码用value_counts()统计的是各部门员工数量,要改成展示平均薪资,只需把数据聚合逻辑换成按部门分组计算薪资均值,具体修改如下:

修改后的完整代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

file_path = 'Employee_Salaries_-_2020.csv'
salaries = pd.read_csv(file_path)

# 关键修改:按部门分组计算基础薪资平均值,按薪资从高到低排序
avg_salary_by_dept = salaries.groupby('Department')['Base Pay'].mean().sort_values(ascending=False)
depts = list(avg_salary_by_dept.index)
avg_salaries = list(avg_salary_by_dept.values)

f, ax = plt.subplots(figsize=(20,10))
width = 0.75
ind = np.arange(len(avg_salaries))
ax.barh(ind, avg_salaries, width, color="blue")
ax.set_yticks(ind + width/2)
ax.set_yticklabels(depts, minor=False)

# 修改标注:显示格式化后的平均薪资(保留两位小数,带千分位)
for i, v in enumerate(avg_salaries):
    ax.text(v + 500, i + .25, f'${v:,.2f}', color='blue', fontweight='bold')

plt.title('各部门平均基础薪资')
plt.xlabel('平均基础薪资')
plt.ylabel('部门')
plt.show()

关键修改点说明

  • 替换value_counts()为groupby('Department')['Base Pay'].mean():实现按部门聚合计算平均薪资,添加sort_values(ascending=False)让图表按薪资从高到低排列,更易读
  • 文本标注改为货币格式:用f'${v:,.2f}'让薪资显示为带千分位的美元格式,更直观
  • 调整标题和坐标轴标签为中文,贴合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:35:23