查看原文
其他

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

Don Lex Python绿洲 2018-08-21

阅读文本需要666分钟(祝愿每个高考生都考到666分)

从昨天开始,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更加简单,这里就不重复了,有需要可以查看源码

    (高考人数与录取人数)

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

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

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

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

    地图类

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

    (来自:凤凰新闻)

    现在开始利用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中显示  

    效果图:

    (五颜六色的中国 )

    看来河南和广东的考生压力有点大呀(!_!)

    多说一点

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

    推荐阅读 |  如何优雅的用python库提升逼格???


    扫码关注哦

    点赞是一种态度

      您可能也对以下帖子感兴趣

      文章有问题?点此查看未经处理的缓存