使用matplotlib函数,利用数据表‘历年录取人数.xlsx’的数据生成柱状图,横坐标为年份,纵坐标为人数(万),每一年年份用不同颜色区分报名人数和录取人数
时间: 2024-10-20 14:10:27 浏览: 47
一、车次上车人数统计表.xlsx
在Python中,我们可以使用`pandas`库读取Excel文件,然后结合`matplotlib`库创建柱状图。以下是一个基本步骤的示例:
首先,安装必要的库如果还没有安装:
```bash
pip install pandas matplotlib openpyxl
```
然后使用以下代码实现你的需求:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 1. 读取数据
df = pd.read_excel('历年录取人数.xlsx', engine='openpyxl') # 使用openpyxl引擎处理Excel文件
# 确保'年份'列是日期类型,以便正确排序
if '年份' not in df.columns or not isinstance(df['年份'].dtype, pd.DatetimeIndex):
df['年份'] = pd.to_datetime(df['年份'])
# 分别提取报名人数和录取人数列
enrollment_numbers = df['报名人数']
admission_numbers = df['录取人数']
# 创建一个新的索引,用于在图表上表示年份并设置颜色
years = df['年份'].year
color_map = {year: f'C{i}' for i, year in enumerate(years)}
# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(years, enrollment_numbers, label='报名人数', color=[color_map[y] for y in years])
ax.bar(years, admission_numbers, bottom=enrollment_numbers, label='录取人数', color=[color_map[y] for y in years])
# 设置轴标签、标题和图例
ax.set_xlabel('年份')
ax.set_ylabel('人数 (万)')
ax.set_title('历年录取人数对比')
ax.legend()
plt.show() # 显示图形
阅读全文