当前位置:首页 >> 脚本专栏

Python预测2020高考分数和录取情况

“迟到”了一个月的高考终于要来了。

Python预测2020高考分数和录取情况

正好我得到了一份山东新高考模拟考的成绩和山东考试院公布的一分一段表,以及过去三年的普通高考本科普通批首次志愿录取情况统计。2020年是山东新高考改革的元年,全新的录取模式以及选考科目要求都给考生带来了非常大的挑战。

我正好就本次山东模拟考的成绩进行深入数据分析,用python可视化带大家模拟一下2020高考分数和录取情况。

(代码较长,故只展示部分,完整数据+源码下载见文末)

不同考生的成绩分布图

首先对山东新高考模拟考的成绩进行总体描述:

fig = make_subplots(rows=4,cols=2, #4行2列
          subplot_titles=('所有考生',"物理", "历史", "化学", "地理", "生物", "政治"),
          specs=[[{'colspan': 2},None],[{},{}],[{},{}],[{},{}],
             ]) #specs参数定义了如何分配视图区间, 本案例中的“specs=[[{}, {}],[{'colspan': 2},None]]”表示其他行的两个子图平均分配区间, 第一行的第一个子图占据 2列的区间, 并且不存在第二个子图

fig.add_trace(go.Scatter(
  x = raw_data['分数段'], 
  y = raw_data['所有考生本段人数'],
  fill = 'tozeroy',
  mode = 'lines',  
  marker = dict(
    size = 8,
    color =  'rgb(88, 182, 192)'
   )),
  row=1, col=1,
  )

#保存图片
img_file = os.path.join(img_dir, 'img1.svg')
fig.write_image(img_file, scale=1)
fig.show()

Python预测2020高考分数和录取情况

选考物理、化学、生物的学生的成绩呈正态分布,大多数学生的成绩集中于中间,成绩两端学生的人数分布较少。而选考文科类(历史、地理、政治)学科的学生的成绩成偏态分布,一段线以下的人数占比较大,尤其历史和地理学科上这种趋势更加明显。

本科上线率

Python预测2020高考分数和录取情况

通过计算各科所有选择的人中有多少人的总分在一段线以上,发现,选考物理的学生的上线率最高,达到了67%,而选考历史的学生的上线率较低,只有37%。

选考科目情况

#所有考生的科目选择情况
sum_people = raw_data['所有考生累计人数'].iloc[-1]
subj_select = []
subj_name = ['物理','化学','生物','历史','地理','政治']
subj_select_percent = pd.DataFrame(index = subj_name,columns=['比例'])
for i in subj_name:
  singel_subj = raw_data['选考'+i+'累计人数'].iloc[-1]
  singel_percent = round(singel_subj/sum_people,4)*100
  subj_select.append(singel_percent)
  subj_select_percent.loc[i, '比例'] = singel_percent

在此次模拟考中,分数在150分以上的考生共有489567人,其中选考地理的人数最多,选考比率为63.6%,选考政治的人数最少,选考比率只有34.31%,而备受大家关注的选考物理的比率为41.59%。

Python预测2020高考分数和录取情况

需要注意的是,山东2020年高考的正式选科时间是5.25-29,而模拟考的时间在1月,因此上述数据只能作为学生选科的重要参考。

学霸们的选科组合

根据此次公布的一分一段表以及高考志愿辅导专家的分析,大体推测了全省前100名考生的选科情况。

Python预测2020高考分数和录取情况

果然,学霸们还是较忠于传统的理科组合(物化生),有89%的人选择了该组合,而传统的文科组合(史地政)没有人选择。或许因为,理科受题目的难度影响较大,当题目较简单时,考生更容易考出高分,而文科更多开放题,考取的高分的概率更小。这也间接导致了,考生倾向选择纯理科或者至少1门理科。

双一流高校录取情况分析

Python预测2020高考分数和录取情况

我们统计了近三年双一流高校在山东的理工类专业录取最低分,位次靠前的依次是北京大学,复旦大学,上海交通大学,浙江大学,中国科学技术大学。

Python预测2020高考分数和录取情况

我们统计了近三年双一流高校在山东的文史类专业录取最低分,位次靠前的依次是清华大学,北京大学,上海交通大学,复旦大学,中国人民大学。

双一流高校专业录取情况分析

#南丁格尔图
pie_Nightingale(sci_top10['专业'].values.tolist(),
        sci_top10['频数'].values.tolist(),
        '录取最低分排名\n前10的理工类专业', 
        '理科专业top10.html')

Python预测2020高考分数和录取情况

我们统计了双一流高校录取最低分所对应的专业频次,结果发现,理工类专业中工科实验班的出现频次最高,双一流高校中有25个学校的录取最低分所对应的专业是工科实验班。

Python预测2020高考分数和录取情况

我们同样统计了双一流高录取最低分所对应的文史类专业的频次,结果发现,文史类专业中日语出现的频次最高,双一流高校中有25个学校的录取最低分对应的专业是日语。

高考加油

2020年的寒冬,让所有人的步伐变得蹒跚

1月,教育部下发学生延期开学通知;

2月,关于停课的消息层出不穷;

3月中旬,全国陆续开始实行网络授课;

3月底,正式确认2020年高考将延期一个月举行;

……

在一则又一则“刷新历史”的新闻中,高考生无疑成为了一个备受关注的群体——除了需要面临的学习压力,还要时刻保持着安全距离进行学习和生活……对他们来说,无论疫情还是高考,都成为了一场重大的考验。[1]

Python预测2020高考分数和录取情况

祝愿2020高考学子都能考出自己的最佳成绩!