python最全画地图,可视化数据

作者: Python数据分析实战 | 来源:发表于2018-08-17 18:13 被阅读81次
    有时我们会很希望把数据展示在地图上,来做数据可视化,使数据更加清晰明了,可谓一图胜百文。先说说我用地图做什么了:微信好友全国分布,显示票房省份数据,全国评分显示等等,我这个语言能力很是头疼啊,进入正题吧 地图会闪动,bulingbuling的那种

    这里选用的是pyecharts模块,虽然python有自带的画图模块,matplotlib,但他是静态图,后来发现了pyecharts模块,瞬间爱上了这个模块,这种动态效果,数据好处理,简直简直太好用了,后面我会继续更新该模块其他画图功能
    在使用地图前需要安装一下适合自己的地图包:
    要记得安装对应的地图拓展:

    选择自己需要的安装
    $ pip install echarts-countries-pypkg
    $ pip install echarts-china-provinces-pypkg
    $ pip install echarts-china-cities-pypkg
    $ pip install echarts-china-counties-pypkg
    $ pip install echarts-china-misc-pypkg
    $ pip install echarts-united-kingdom-pypkg
    

    主要地图来源于这两个 Map, Geo

    from pyecharts import Map, Geo
    

    先定义一下数据

    # 世界地图数据
    value = [95.1, 23.2, 43.3, 66.4, 88.5]
    attr= ["China", "Canada", "Brazil", "Russia", "United States"]
    
    # 省和直辖市
    province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '辽宁': 12, '江西': 6, '上海': 20, '安徽': 10, '江苏': 16, '湖南': 9, '浙江': 13, '海南': 2, '广东': 22, '湖北': 8, '黑龙江': 11, '澳门': 1, '陕西': 11, '四川': 7, '内蒙古': 3, '重庆': 3, '云南': 6, '贵州': 2, '吉林': 3, '山西': 12, '山东': 11, '福建': 4, '青海': 1, '舵主科技,质量保证': 1, '天津': 1, '其他': 1}
    provice=list(province_distribution.keys())
    values=list(province_distribution.values())
    
    # 城市 -- 指定省的城市 xx市
    city = ['郑州市', '安阳市', '洛阳市', '濮阳市', '南阳市', '开封市', '商丘市', '信阳市', '新乡市']
    values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]
    
    # 区县 -- 具体城市内的区县  xx县
    quxian = ['夏邑县', '民权县', '梁园区', '睢阳区', '柘城县', '宁陵县']
    values3 = [3, 5, 7, 8, 2, 4]
    
    世界地图:
    map0 = Map("世界地图示例", width=1200, height=600)
    map0.add("世界地图", attr, value, maptype="world",  is_visualmap=True, visual_text_color='#000')
    map0.render(path="./data/04-00世界地图.html")
    
    世界地图
    中国地图
    # maptype='china' 只显示全国直辖市和省级
    # 数据只能是省名和直辖市的名称
    map = Map("中国地图",'中国地图', width=1200, height=600)
    map.add("", provice, values, visual_range=[0, 50],  maptype='china', is_visualmap=True,
        visual_text_color='#000')
    map.show_config()
    map.render(path="./data/04-01中国地图.html")
    
    中国地图.png
    省份地图
    # 河南地图  数据必须是省内放入城市名
    map2 = Map("河南地图",'河南', width=1200, height=600)
    map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
    map2.show_config()
    map2.render(path="./data/04-02河南地图.html")
    
    省份地图
    区县地图
    # # 商丘地图 数据为商丘市下的区县
    map3 = Map("商丘地图",'商丘', width=1200, height=600)
    map3.add("商丘", quxian, values3, visual_range=[1, 10], maptype='商丘', is_visualmap=True,
        visual_text_color='#000')
    map3.render(path="./data/04-03商丘地图.html")
    
    区县地图.png
    下面的这两个可直接使用全国城市
    热力分布图
    data = [
    ("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),
    ("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),
    ("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25)]
    
    attr, value = geo.cast(data)
    
    geo = Geo("全国主要城市空气质量热力图", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')
    
    geo.add("空气质量热力图", attr, value, visual_range=[0, 25], type='heatmap',visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
    geo.show_config()
    geo.render(path="./data/04-04空气质量热力图.html")
    
    热力分布图.png
    # 空气质量评分
    indexs = ['上海', '北京', '合肥', '哈尔滨', '广州', '成都', '无锡', '杭州', '武汉', '深圳', '西安', '郑州', '重庆', '长沙']
    values = [4.07, 1.85, 4.38, 2.21, 3.53, 4.37, 1.38, 4.29, 4.1, 1.31, 3.92, 4.47, 2.40, 3.60]
    
    
    geo = Geo("全国主要城市空气质量评分", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')
    
    # type="effectScatter", is_random=True, effect_scale=5  使点具有发散性
    geo.add("空气质量评分", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 5],visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
    geo.show_config()
    geo.render(path="./data/04-05空气质量评分.html")
    
    空气质量评分.png

    如果地图显示不全或只显示南海诸岛问题,请查看我的这篇文章:
    https://www.jianshu.com/p/20fd061d0b96

    关注公众号:Python疯子 后台回复: pyecharts 获取源代码
    分享最实用的Python功能,欢迎您的关注

    image

    相关文章

      网友评论

      本文标题:python最全画地图,可视化数据

      本文链接:https://www.haomeiwen.com/subject/iwhtiftx.html