微信号:crossincode

介绍:每天5分钟,学点简单的编程,用新的思维方式看世界.【声明:公众号搜出的另一个同名是山寨货】

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

2018-06-07 15:18 Crossin先生

一年一度的高考又到来了。虽然对于大多数人来说,高考已经是过去的事情了。但每年到了这个时候,又难免再次想起那种被支配的恐惧😂。譬如03年的江苏数学卷,十多年过去了仍不断被人提起。作为当时的亲历者之一,我不禁想知道:到底我们是不是最难的一届呢?

于是我去找了下历年的高考数据,并使用 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。

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


教育是件极为重要的事,也是件极为复杂的事。我在这里仅仅是展示一些看得到的客观数据,很难得出更深的结论。我希望今天参加高考的每位考生都可以考上理想的学校,但在教育资源小于受教育需求的前提下,这个愿望显然不可能每个人都实现。所以,能有幸接受到好教育的机会值得珍惜,而因种种原因没能如愿的人,人生还很长,还有千万种可能。

从个人角度来看,不要执着于绝对的公平;但从整个社会来看,我们应该让每个人拥有更加公平的机会。相信在不久之后,报名数和录取数的曲线会越来越近,录取率分布图上的颜色也越来越趋向一致。




最后,插播个题外话。端午节要到了,为了感谢各位读者长期以来的关注和支持,明天会给大家送出几百份小礼物,推送时间会在下午两点到三点之间,先到先得。详情请关注明天的推送。

本文中使用到的完整数据和代码,可在公众号(Crossin的编程教室)里获取,回复关键字 高考




如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com


推荐阅读:

知乎 | 排序 | 朋友圈 | 电影票 | 百万关注 | 技术宅 | 火车票 | 单词表 | 押韵工具 | 新手建议 | 就业 | 我用Python



欢迎加入

Crossin的编程教室

crossincode.com


  请把我们分享给身边爱学习的小伙伴 :)  

点击文末“阅读原文”,查看更多学习资源

 
Crossin的编程教室 更多文章 微软收购 GitHub 后对我们有什么影响? 分享一个强大的英汉词典开源数据库 全菊变量和菊部变量 我用Python做过些什么? 她只用一个方法,就把英语拿下了!
猜您喜欢 为生活可忍,侮辱技术行不行? 共识机制:群智的基本法则 性能测试应该怎么做? 汪丁丁:成员多于150人,微信群“品质”必将下滑,为什么? 云巴实时案例|云巴多人绘图,随时随地记录分享你的灵感