使用matplotlib函数,利用数据表数据生成柱状图,横坐标为年份,纵坐标为人数(万),每一年年份用不同颜色区分报名人数和录取人数
时间: 2024-10-20 22:10:13 浏览: 23
在Python中,你可以使用matplotlib库创建这种类型的柱状图,通常结合pandas数据处理库来处理表格数据。以下是一个简化的步骤示例:
首先,假设你已经有了一个包含年份、报名人数和录取人数的数据表df,其中年份列名是'year',报名人数列名是'registrants',录取人数列名是'admits'。
```python
import pandas as pd
import matplotlib.pyplot as plt
# 假设df是你存储数据的DataFrame
if 'year' in df.columns and ('registrants' in df.columns and 'admits' in df.columns):
# 分别提取报名人数和录取人数数据
registrants = df['registrants']
admits = df['admits']
# 创建一个新的DataFrame,用于存储年份和对应的颜色
colors = ['blue', 'red'] * len(registrants) # 这里蓝色代表报名人数,红色代表录取人数
years = df['year'].unique()
# 创建两个柱状图,一个代表报名人数,一个代表录取人数
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10, 6))
for i, (color, year, values) in enumerate(zip(colors, years, [registrants, admits])):
ax[i].bar(years, values, color=color)
ax[i].set_title(f"{year}: 报名人数 ({values.sum()}万人) vs 录取人数 ({sum(values)}万人)")
ax[i].set_xlabel('年份')
ax[i].set_ylabel('人数(万)')
plt.show()
```
在这个例子中,我们创建了两个柱状图,并用列表`colors`和`years`分别指定每个年份的柱子颜色。记得替换实际的数据框和列名。
阅读全文