1. 项目简介
全球化时代,英语的重要性日益凸显。现如今我国高校英语教育还存在教学形式单一、没有创新、传统模式已经不适合当今社会发展等弊端,需要制订出符合国情的教学规划,采取相对应的策略,增进教育理念,培养高素质人才。本项目利用
pandas + Matplotlib + seaborn + sklearn
等工具包对某高校各大学院学生历年的四六级数据进行多维度的统计分析,展现高校英语的现状,为英语教学改革提供精细化的分析。
2. 四六级成绩数据读取
df_202009_six = pd.read_excel(‘./data/2020年9月大学英语六级成绩.xls’)
df_202009_four = pd.read_excel(‘./data/2020年9月大学英语四级成绩.xls’)
df_202012_six = pd.read_excel(‘./data/2020年12月份六级成绩.xls’)
df_202012_four = pd.read_excel(‘./data/2020年12月份四级成绩.xls’)
df_202106_six = pd.read_excel(‘./data/2021年6月份英语六级成绩数据.xls’)
df_202106_four = pd.read_excel(‘./data/2021年6月份英语四级成绩数据.xls’)
3. 数据可视化探索分析
3.1 不同学院报考的学生数量分布
plt.figure(figsize=(16, 5))
plt.subplot(121)
ax = sns.countplot(df_202009_six[‘学院’], order=sorted(list(set(df_202009_six[‘学院’]))))
ax.set_xticklabels(ax.get_xticklabels(),rotation=90)
plt.title(‘2020年9月各学院大学英语六级报考人数’, fontsize=16, weight=‘bold’)
plt.subplot(122)
ax = sns.countplot(df_202009_four[‘学院’], order=sorted(list(set(df_202009_four[‘学院’]))))
ax.set_xticklabels(ax.get_xticklabels(),rotation=90)
plt.title(‘2020年9月各学院大学英语四级报考人数’, fontsize=16, weight=‘bold’)
plt.show()
3.2 各学院六级得分变化与分布情况
3.3 各学院四级得分变化与分布情况
3.4 各学院四六级考试弃考率变化情况
3.5 各学院四六级得分分布箱型图
xueyuan_6_dict = {k: 0 for k in set(df_202106_six[‘学院’])}
for xueyuan in xueyuan_6_dict:
xueyuan_df = df_202106_six[df_202106_six[‘学院’] == xueyuan]
if xueyuan_df.shape[0] == 0:
continue
defen = xueyuan_df[‘总分’].values
defen = defen[defen > 0]
xueyuan_6_dict[xueyuan] = defen.tolist()
plt.figure(figsize=(16, 10))
plt.boxplot(xueyuan_6_dict.values(), labels = xueyuan_6_dict.keys())
plt.title(‘各学院六级得分分布箱型图’, fontdict={‘weight’:‘normal’,‘size’: 20})
pl.xticks(rotation=90)
plt.show()
3.6
各科目得分与总分之间的回归分析
3.7 各学院四六级及格率统计分析
xueyuan_4_dict = {k: 0 for k in set(df_202106_four[‘学院’])}
for xueyuan in xueyuan_4_dict:
xueyuan_df = df_202106_four[df_202106_four[‘学院’] == xueyuan]
if xueyuan_df.shape[0] == 0:
continue
pass_df = xueyuan_df[xueyuan_df['总分'] >=425]
pass_ = pass_df.shape[0]
pass_ratio = pass_ * 1.0 / xueyuan_df.shape[0]
xueyuan_4_dict[xueyuan] = pass_ratio
print(f'{xueyuan}:{pass_ratio}')
xueyuan_4_dict = sorted(xueyuan_4_dict.items(), key=lambda x: x[1], reverse=True)
plt.figure(figsize=(16, 6))
plt.bar([x[0] for x in xueyuan_4_dict], [x[1] for x in xueyuan_4_dict])
pl.xticks(rotation=90, fontsize=14)
plt.title('各学院四级通过率分布柱状图', fontdict={'weight':'normal','size': 20})
plt.show()
项目分享
项目分享:
https://gitee.com/asoonis/feed-neo