[数据可视化]哪年高考最难?哪里高考最难?

找了下历年的高考数据,并使用 pyechats 库做了一点简单的可视化处理:

最直接反映高考难度的,自然是录取率。因为难易是相对的,就算试卷很难,但大家都有学上,那也算不上难考。

数据来源:新东方在线 http://news.koolearn.com/20180606/1152629.html

代码:

import numpy as np
from pyecharts import Bar, Line, Overlap

data = [[2017, 940, 700, 74.46],
[2016, 940, 705, 75],
[2015, 942, 700, 74.3],
...
[1977, 570, 27, 5]]

arr = np.array(data)
bar = Bar()
bar.add("报考人数",arr[::-1,0] , arr[::-1,1])
bar.add("录取人数",arr[::-1,0] , arr[::-1,2])
line = Line()
line.add("录取率",arr[::-1,0] , arr[::-1,3]*10, line_width=3, line_color='green')
ol = Overlap("历年报考人数与录取率")
ol.add(bar)
ol.add(line)
ol.rander()

这是自1977年恢复高考以来到2017年的高考报考及录取数据。篇幅所限,省略了部分数据。为了直观展示,对录取率做了尺度上的变换。2000年以后,最难(录取率最低)的一年高考是2007年,录取率只有56%,但这也已经比上世纪八九十年代只有百分之二三十的录取率高得多。总体来说,上大学的确是越来越容易了。而数据上看,03年也没有想象中那么糟糕。

从图上可以看出,每年的报考人数也有不小的波动。我去找了历年的人口统计数据,与报考人数做了个对比:

数据来源:国家统计局年度数据 http://data.stats.gov.cn/easyquery.htm?cn=C01

代码:

data_born = [[124761, 123626, 122389, ..., 65994], 
             [14.64, 15.64, 16.57, ..., 24.78]]
arr_born = np.array(data_born)
list_born = list((arr_born[0]*arr_born[1]/1000)[::-1])
bar = Bar("历年报考人数与出生人数")
bar.add("报考人数",arr[::-1,0] , arr[::-1,1])
bar.add("出生人数",arr[::-1,0] , list_born)
bar.rander()

由于没有完整的年出生人数数据,我用了1959~1999 前一年末总人口数 x 当年出生率来替代出生人数,然后与18年后的高考报名人数作比较。可以看出两点:

  1. 高考人口与出生人数有一定的相关性

  2. 适龄人口的高考率逐渐提高

教育普及率相比较二三十年前大有提高,加之人口增长放缓,越来越多的人可以接受更高程度的教育。不过从比例上可以推断出,上大学仍然不是件人人可以享受得到的事情。

看了时间上的分布,那么地域上呢?相较整体的录取率,人们争议更多的还是不同地区高考之前的差异。

首先看下2018年各省的报名情况:

数据来源:中国教育在线 http://gaokao.eol.cn/gkbm/

代码:

from pyecharts import Map  

data_prov = [('北京', 6.3), ('重庆', 25), ('上海', 5), ..., ('西藏', 2.53)]  
geo = Map("2018各省高考报名人数")
attr, value = geo.cast(data_prov)
geo.add('', attr, value, visual_range=[0, 80], is_visualmap=True, is_map_symbol_show=False)  
geo.rander()

报名人数最多的是河南省98.38万人,广东省75.8万人次之,重庆作为直辖市也有25万人。人数较少的地区:北京6.3万、上海约5万、天津5.5万、青海约4万, 西藏2.53万

报名人数与当地本身的人口总量有关,有多有少很正常,关键还是看录取率。下面是2017年各省的一本录取率:

数据来源:新东方在线 http://gaokao.koolearn.com/20170728/1119910.html

代码:

data_prov_ad = [('湖南', 11.2), ('江西', 10.4), ('安徽', 14.2), ..., ('浙江', 14)]
geo = Map("2018各省一本录取率")
attr, value = geo.cast(data_prov_ad)
geo.add("", attr, value, visual_range=[8, 20], is_visualmap=True, is_map_symbol_show=False)
geo.rander()

最难的三个地区:河南7.8%,广西8.44%,山西9.8%
录取率最高的三个地区:北京30.5%,天津24.1%,上海21.8%
(缺海南数据)

而江苏去年的12.1%还排不进top10。

讲真,看了这数据还是挺心疼河南的小伙伴们,论人数远高于其他地区,论录取率又远低于。难怪周围的河南同学都是学霸。

数据及代码项目地址: 
https://github.com/crossin/snippet/tree/master/exam

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值