用matplotlib绘制一个热力图,显示每个部门与员工工作年限和工资之间的关系。 要求: • 横轴表示 "Department"(部门),纵轴表示 "Years_of_work"(工作年限),每个方格的颜色深浅代表工资的高低。
时间: 2024-09-24 21:06:37 浏览: 31
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
在Matplotlib中绘制热力图通常需要结合pandas数据处理和数值计算库numpy。以下是一个简单的例子,假设有一个DataFrame `df` 包含了 "Department", "Years_of_work", 和 "Salary" 列:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 假设df是一个包含部门、工作年限和工资的数据框
# df = pd.DataFrame({'Department': ['A', 'B', 'C', ...],
# 'Years_of_work': [1, 2, 3, ..., n],
# 'Salary': [50000, 60000, 70000, ..., m]})
# 首先,对数据进行整理以便于绘图
salary_matrix = df.pivot_table(index='Department', columns='Years_of_work', values='Salary')
# 计算颜色映射范围,这里我们使用最大值和最小值作为颜色标度
vmin, vmax = salary_matrix.min().min(), salary_matrix.max().max()
# 创建一个网格数组,用于生成热力图
xpos, ypos = np.meshgrid(range(salary_matrix.shape[1]), range(salary_matrix.shape[0]))
# 绘制热力图
fig, ax = plt.subplots()
im = ax.pcolor(xpos, ypos, salary_matrix, cmap='coolwarm', vmin=vmin, vmax=vmax)
# 添加轴标签和标题
ax.set_xlabel('Years_of_work')
ax.set_ylabel('Department')
ax.set_title('Salary Heatmap by Department and Years of Work')
# 显示颜色bar
cbar = fig.colorbar(im, ax=ax)
cbar.ax.set_ylabel('Salary')
plt.show()
```
这个脚本会生成一个热力图,其中颜色深浅代表不同部门与工作年限对应工资的高低。你可以根据实际数据调整 `vmin` 和 `vmax` 的设置,以及颜色映射方案 `cmap`。
阅读全文