zoukankan      html  css  js  c++  java
  • 实操案例!手把手教你画城市轮播地图(文末送书)

    大家好,我是阿辰,今天教大家画城市轮播地图,个人觉得这类型的地图可以在很多方面有实际应用,所以就介绍给大家,并给出个实际操作案例!

    本文数据来源于之前的【全国火锅店数量分布】,不过不用担心,文中会给出用到的数据

    这里是以其中5个省份的城市为例进行演示

    1.画图前准备

    在画图之前先导入相关的库

    from pyecharts.charts import Map, Timeline
    from pyecharts import options
    from pyecharts import options as opts
    
    

    数据

    
    # 1. 准数据
    ### 山东省
    sd_c = ['青岛市','济南市','潍坊市','临沂市','烟台市','聊城市','济宁市','淄博市','菏泽市','德州市','泰安市','滨州市','威海市','东营市','枣庄市','日照市']
    sd_d = [1278,1163,834,704,673,632,622,587,586,570,434,401,303,289,216,201]
    
    ### 广东省
    gd_c = ['广州市','东莞市','佛山市','汕头市','惠州市','中山市','揭阳市','珠海市','江门市','潮州市','湛江市','清远市','汕尾市','肇庆市','茂名市','梅州市','韶关市','河源市','阳江市','云浮市']
    gd_d = [1925,1235,936,788,548,464,420,356,354,311,274,246,237,220,205,157,127,118,108,82]
    
    ### 四川省
    sc_c = ['绵阳市','南充市','广元市','德阳市','宜宾市','达州市','泸州市','广安市','乐山市','遂宁市','眉山市','巴中市','凉山彝族自治州','内江市','自贡市','资阳市','雅安市','攀枝花市','阿坝藏族羌族自治州','甘孜藏族自治州']
    sc_d = [944,741,639,555,493,463,359,351,340,337,300,282,239,214,190,174,157,141,123,104]
    
    ### 浙江省
    zj_c = ['杭州市','温州市','宁波市','金华市','嘉兴市','台州市','绍兴市','湖州市','丽水市','衢州市','舟山市']
    zj_d = [1183,792,765,582,438,381,360,288,197,103,66]
    
    ### 贵州省
    gz_c = ['贵阳市','遵义市','毕节市','黔南布依族苗族自治州','黔西南布依族苗族自治州','六盘水市','安顺市','黔东南苗族侗族自治州','铜仁市']
    gz_d = [1605,887,454,414,414,381,338,291,196]
    
    

    这里以5个省份为例,统计5个省份的各市(不完全统计)以及各市的火锅店数量

    2.绘图

    这里绘图主要是用到pyecharts库的Map类和Timeline这两个类

    其中Map是绘制城市地图,Timeline是绘制轮播图(整合城市图)

    先看一下官方案例

    map1 = (
        Map(init_opts=opts.InitOpts(width="700px",height="300px",theme="blue"))
        .add('', [(i,j) for i,j in zip(sd_c,sd_d)], '山东')
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=4000))
    )
    
    

    其init_opts=opts.InitOpts(width=“700px”,height=“300px”,theme=“blue”)这部分代码是自定义的,不需要的可以去掉(这里只是修改了默认从参数)

    add中:add(’’, [(i,j) for i,j in zip(sd_c,sd_d)], ‘山东’),其中sd_c是省份对应的市,sd_d是每一个市对应的火锅店数,后面的“山东”是省份,sd_c的市是和和山东对应的

    # 2. 绘制山东省地图:格式一
    map1 = (
        Map(init_opts=opts.InitOpts(width="700px",height="300px",theme="blue"))
        .add('', [(i,j) for i,j in zip(sd_c,sd_d)], '山东')
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=4000))
    )
    # 3. 绘制广东省地图:格式二
    map2 = (
        Map()
        .add('', [(i,j) for i,j in zip(gd_c,gd_d)], '广东')
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=400,is_piecewise=True))
    )
    # 4. 绘制四川省地图:格式二
    map3 = (
        Map()
        .add('', [(i,j) for i,j in zip(sc_c,sc_d)], '四川')
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=400,is_piecewise=True))
    )
    # 5. 绘制浙江省地图:格式二
    map4 = (
        Map()
        .add('', [(i,j) for i,j in zip(zj_c,zj_d)], '浙江')
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=400,is_piecewise=True))
    )
    # 6. 绘制贵州省地图:格式二
    map5 = (
        Map()
        .add('', [(i,j) for i,j in zip(gz_c,gz_d)], '贵州')
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=400,is_piecewise=True))
    )
    
    

    绘制轮播图

    将上面的5个城市地图(map1~map5)整合到一起,并且设置间隔为3秒进行轮播

    # 4. 创建组合类对象
    timeline = Timeline(init_opts=opts.InitOpts(width='720px', height='350px'))
    
    # 5. 在组合对象中添加需要组合的图表对象
    timeline.add(chart=map1, time_point="山东省地图")
    timeline.add(chart=map2, time_point="广东省地图")
    timeline.add(chart=map3, time_point="四川省地图")
    timeline.add(chart=map4, time_point="浙江省地图")
    timeline.add(chart=map5, time_point="贵州省地图")
    ### 设置轮播时间
    timeline.add_schema(is_auto_play=True, play_interval=3000)
    
    

    最后保存成html

    
    # 6. 渲染数据
    timeline.render("城市地图轮播图.html")
    
    

    最终的效果

    3.小结

    以上就是城市轮播图的全部讲解,代码量不多,如果需要完整源码的小伙伴可以在后台回复:轮播图,领取本文完整源码。

    送书福利

    接下来,准备给粉丝送两本书(本公众号第一次送书),这两本书分别是:《用Python写网络爬虫》,《Python3爬虫、数据清洗与可视化实战》

    「赠书规则」

    在公众号「Python研究者」的本篇文章底部点击「点赞」+「再看」,并在公众号后台回复:送书,获取抽奖小程序后即可参与。

    截止时间「2021年4月19日14:00」,最终获赠者请及时联系阿辰并提供收货信息将给你包邮送到家。

    PS:中奖后,截止后24小时内未与阿辰联系,视为自动放弃。

    推荐阅读

    手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

    实战|教你爬取全国火锅店数量,并利用地图可视化展示

    耐得住寂寞,才能登得顶
    Gitee码云:https://gitee.com/lyc96/projects
  • 相关阅读:
    [转]网络负载均衡配置十步完成
    视图相关SQL
    视图的作用
    23种设计模式(2):工厂方法模式
    设计模式中类的关系
    23种设计模式(1):单例模式
    linux 下查看系统资源和负载,以及性能监控
    java文件读写操作大全
    JAVA基础知识(static,final,abstract)浅谈
    Hibernate--基于注解方式的各种映射全面总结
  • 原文地址:https://www.cnblogs.com/chenlove/p/14801808.html
Copyright © 2011-2022 走看看