最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • pyecharts绘制地图

    正文概述 流芳   2020-12-15   388
    pyecharts绘制地图

    把时间线拉回到 2015 年 4 月 13 日,一位河南省实验中学的心里老师在辞职信上写下了「世界那么大,我想去看看」这句话,后来爆红网络,我想这位心里老师当时写这句话的时候肯定没想到这句只有十个字的话,成为了当年的网络经典语录,成为了我们每个人对那个年代的回忆。

    这句话直接导致了当年很多营销号出来炒作概念,乱七八糟瞎炒一气,蛊惑了不知道多少年轻人当年自认为潇洒的裸辞掉工作,一个人跑出去看世界。

    可惜的是当年脑子一热裸辞掉工作跑出去看世界的人,不知道有多少人还能稳定的着陆。忽然想起来不知道在哪看到的一句话 「不是工作需要你,而是你需要一份工作」

    大家都是成年人,做决定前最好能自己多思考几分钟,仔细想想自己是否能承担后果。

    我们想要出去看世界代价有点高,但是 Python 想看世界不是一般的简单,我们只需要用到一个 pyecharts ,就可以让 Python 想看啥看啥。

    安装

    Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

    pyecharts 的安装非常简单,只需要一句话:

    pip install pyecharts复制代码

    pyecharts 环境:

    • Python3.6+

    pyecharts 文档地址:pyecharts.org/#/zh-cn/int…

    pyecharts 示例代码:github.com/pyecharts/p…

    看世界

    pyecharts 为我们提供了地图组件 Map ,我们可以直接使用 Map 组件来看世界。

    接下来我们来看下如何使用 pyecharts 的 Map 组件来画地图。

    以下示例均参考自官方示例

    Map 组件的使用非常简单,我们可以先看下世界地图:

    import pyecharts.options as optsfrom pyecharts.charts import MapGlobefrom pyecharts.faker import POPULATION
    
    
    data = [x for _, x in POPULATION[1:]]
    low, high = min(data), max(data)
    
    c = (
        MapGlobe()
        .add_schema()
        .add(
            maptype="world",
            series_name="World Population",
            data_pair=POPULATION[1:],
            is_map_symbol_show=False,
            label_opts=opts.LabelOpts(is_show=False),
        )
        .set_global_opts(
            visualmap_opts=opts.VisualMapOpts(
                min_=low,
                max_=high,
                range_text=["max", "min"],
                is_calculable=True,
                range_color=["lightskyblue", "yellow", "orangered"],
            )
    
        )
        .render("map_globe.html")
    )复制代码
    pyecharts绘制地图

    世界看的不想看了还能看看我们伟大的祖国,代码也很简单:

    from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.faker import Fakerfrom pyecharts.globals import ThemeType
    
    c = (
        Map(init_opts=opts.InitOpts(
            theme=ThemeType.DARK,
            bg_color='#404a59'
        ))
        .add(        "中国地图",
            [list(z) for z in zip(Faker.provinces, Faker.values())],        "china"
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title="中国地图-示例"),
            visualmap_opts=opts.VisualMapOpts(),
        )
        .render("china_map.html")
    )复制代码
    pyecharts绘制地图

    再来一个我生活的城市上海的地图:

    from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.globals import ThemeType
    
    shanghai_list = ['黄浦区', '徐汇区', '长宁区', '静安区', '普陀区', '虹口区', '杨浦区', '闵行区', '宝山区', '嘉定区', '金山区', '松江区', '青浦区', '奉贤区', '崇明区', '浦东新区']
    
    shanghai_people = [65.38, 108.44, 69.4, 106.28, 128.19, 79.7, 131.27, 254.35, 204.23, 158.89, 80.5, 176.22, 121.9, 115.2, 68.81, 555.02]
    
    BAIDU_LINK='https://baike.baidu.com/item/%E4%B8%8A%E6%B5%B7%E8%A1%8C%E6%94%BF%E5%8C%BA%E5%88%92/7426389?fr=aladdin'c = (
        Map(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color='#404a59', width='1600px', height='900px'))
        .add("上海市-常住人口", [list(z) for z in zip(shanghai_list, shanghai_people)], "上海")
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="上海地图-常住人口(单位:万人)",
                subtitle="常住人口数据来自百度百科",
                subtitle_link=BAIDU_LINK,
            ),
            visualmap_opts=opts.VisualMapOpts()
        )
        .render("map_shanghai.html")
    )复制代码
    pyecharts绘制地图

    看完 2D 的有没有觉得不过瘾, Map 组件还未我们提供了 3D 地图的组件 Map3D :

    from pyecharts import options as optsfrom pyecharts.charts import Map3Dfrom pyecharts.globals import ThemeTypefrom pyecharts.globals import ChartTypefrom pyecharts.globals import CurrentConfig
    CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/"c = (
        Map3D(init_opts=opts.InitOpts(
            theme=ThemeType.DARK,
            bg_color='#404a59',
            width='1600px',
            height='900px'
        ))
        .add_schema(
            itemstyle_opts=opts.ItemStyleOpts(
                color="#313c48",
                opacity=1,
                border_width=0.8,
                border_color="#000",
            ),
            map3d_label=opts.Map3DLabelOpts(
                is_show=True,
                text_style=opts.TextStyleOpts(
                    color="#fff", font_size=16, background_color="rgba(0,0,0,0)"
                ),
            ),
            emphasis_label_opts=opts.LabelOpts(is_show=True),
            light_opts=opts.Map3DLightOpts(
                main_color="#fff",
                main_intensity=1.2,
                is_main_shadow=False,
                main_alpha=55,
                main_beta=10,
                ambient_intensity=0.3,
            ),
        )
        .add(series_name="", data_pair="", maptype=ChartType.MAP3D)
        .set_global_opts(
            title_opts=opts.TitleOpts(title="全国行政区划地图"),
            visualmap_opts=opts.VisualMapOpts(is_show=False),
            tooltip_opts=opts.TooltipOpts(is_show=True),
        )
        .render("map3d_china.html")
    )复制代码
    pyecharts绘制地图

    是不是很简单,这些地图我都没有配数据,可以配置上数据做一些看板的展示。

    还有一点, pyecharts 的所需要的静态资源,会默认访问 assets.pyecharts.org/ 获取(可以查看生成的 html 文件):

    pyecharts绘制地图

    如果网络条件不好,地图会展示不出来,我们可以使用官方为我们提供的本地服务:

    需要先获取 pyecharts-assets 项目

    git clone https://github.com/pyecharts/pyecharts-assets.git复制代码

    然后进入 pyecharts-assets 目录启动 HTTP file server :

    cd pyecharts-assets
    python -m http.server# Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...# 默认会在本地 8000 端口启动一个文件服务器复制代码

    然后我们在代码中配置 pyecharts 全局 HOST:

    # 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可from pyecharts.globals import CurrentConfig
    CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/"# 接下来所有图形的静态资源文件都会来自刚启动的服务器复制代码

    添加完成后的 html 文件生成后应该是这样的:

    pyecharts绘制地图

    这时我们再打开页面,可以看到页面基本上是秒刷新。

    更多python相关文章请关注python自学网。


    起源地下载网 » pyecharts绘制地图

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元