Python 数据可视化 - 00 后高考大军

(点击上方公众号,可快速关注)


来源: stormdony

https://mp.weixin.qq.com/s/9QshHxDa8xZ3NZNQGsiu8A

00后大军高考结束了,网络上对这次高考的报道很多(毕竟00后小鲜肉嘛),很多都关注了今年的考生数据,并且用炫酷的图表展示。看着是不是有点小嫉妒,为什么图表还可以做得这么漂亮???是不是也想自己动手做一张???其实这些图表都可以用python制作出来的数据可视化的产物,所以当然是可以自己动手制作的啦

准备工作
  • charts

  • pyecharts

数据

  • 直接从百度上收集

常见类

经常见到或者使用的图表是柱状图和折线图,所以先从简单的入手 。

1. 柱状图
# 高考人数
gaokao_num = [940,940,...,375]
gaokao_num.reverse()
# 录取人数
luqu_num = [700,705,...,221]
luqu_num.reverse()
# 录取率
luqu_lev= [74.46,75,...,59]
luqu_lev.reverse()
import charts
options = {
   'chart'   : {'zoomType':'xy'},
   #标题
   'title'   : {'text': '2000-2017年高考数据'},
   #副标题
   'subtitle': {'text': 'Source: edu.sina.com.cn'},
   #x轴    
   'xAxis'   : {'categories': ['2000',...,'2017']},
   #y轴  
   'yAxis'   : {'title': {'text': '万人/年'}},  
   }
series =  [{
   'type': 'column',
   'name': '高考人数',
   'data': gaokao_num
},{
   'type': 'column',
   'name': '录取人数',
   'data': luqu_num
}
]
charts.plot(series, options=options, show='inline')

由于我的pyecharts有点小问题,所以用了charts进行处理,使用pyecharts更加简单,这里就不重复了,有需要可以查看源码

640?wx_fmt=png(高考人数与录取人数)
今年有 975万 考生(从表中看不出,因为我没写进去),但是可以看出10-18年这段时间的高考人数是稳定的,毕竟人口基数大是没有办法的事。“千军万马过独木桥”这句话还真是有点应景哈。。。
2. 折线图

如果上面的柱状图没有问题的话,那折线图就非常简单了,只是将typecolumn修改为line就行了。

series =  [{
   'type': 'line',
   'name': '录取率',
   'data': luqu_lev,
   'marker':{
       'lineWidth':2,
       'lineColor':'#90ed7d'
   }
}
]
640?wx_fmt=png(高考录取率折线图)

本来是将柱状图和折线图展示在一张图里面的,但是Y轴的值太大了,导致录取率的变化看起来不大,所以这里就将它们拆开了

地图类

先放上一张高考难度排行榜。想当年我也是从困难模式过来的。真的心疼江苏的考生,好像数学又是葛军出题,看来又要上热搜了大江苏 640

640?wx_fmt=jpeg(来自:凤凰新闻)
现在开始利用 pyecharts 制作地图类图表,看一下中国哪个省份的高考生最多
from pyecharts import Map
#处理数据
add =["北京",...,"西藏"]
num = [6.3,...,2.53]
dict_data = dict(zip(add,num))
data = [tuple(i) for i in zip(add,num)]
data_pro = data
geo = Map("各省高考人数分布",
        "data from : gaokao.eol.cn",
         title_color="#fff",  
         title_pos="center",
         width=1000,  
         height=600,
         background_color='#404a59'
         )  

attr, value = geo.cast(data_pro)
geo.add("",  attr, value,
            visual_range=[0, 80],
            maptype='china',
            visual_text_color="#fff",  
            symbol_size=10,
            is_visualmap=True)  
geo.render("各省高考分布.html")#生成html文件  
geo#直接在notebook中显示  

效果图:

640?wx_fmt=png(五颜六色的中国  640?)
看来河南和广东的考生压力有点大呀(!_!)
多说一点

强烈建议使用pyecharts,简单又好用,但是我这除了地图类可以使用pyecharts之外,其他的好像都出不来图,所以只能被逼无奈使用Charts库了。
最后希望各位高考考生都能够考的理想的成绩,然后就可以尽情的去嗨啦。。。ps:点击阅读原文可以查看源码

【关于作者】


stormdony:一个正在发育并且渴望成为一个有技术、有情怀的coder。


【关于投稿】


如果大家有原创好文投稿,请直接给公号发送留言。


① 留言格式:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/

③ 最后请附上您的个人简介哈~



看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值