【安排】Pyecharts制作地图的几种方法评析

简介: 说到使用Python进行地理坐标可视化那就一定少不了Pyecharts的身影,本文就对Pyecharts可以制作的四种地图进行简单的评析。

               

                                                                   刘早起                                                                                                                                                                                                                  一行玩python                                                                                    2020-05-13

说到使用Python进行地理坐标可视化那就一定少不了Pyecharts的身影,本文就对Pyecharts可以制作的四种地图进行简单的评析。

Pyecharts—Map

首先介绍的是Pyecharts中使用最多的Map(),核心代码仅四行即可生成全国地图,来看下官方Demo

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
c = (
    Map()
    .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
    .set_global_opts(title_opts=opts.TitleOpts(title="Map-基本示例"))
    .render("map_base.html")
)

我们看下中间四行代码究竟做了什么:

  • .Map()创建了一个地图实例
  • .add()添加了数据,实际上zip()中就是两个list,一个是省份名称另一个是对应的数据
  • .set_global_opts()添加了标题
  • .render()将生成的地图以html格式保存

所以这个最简单的地图长这样

image.png

告诉我你对这张地图的第一感觉,除了丑就是不协调,主要就是因为下面三点:

  • 顶部的图例,怎么看怎么不爽
  • 有数据省份的红点,怎么看怎么不爽
  • 就在地图上给有数据的省份打了几个点,怎么看怎么不爽

所以我在使用Map()的时候一般会对上面三点进行调整,还是一样的数据,代码可以这么写

c = (
    Map()
    .add("", [list(z) for z in zip(Faker.provinces, Faker.values())], "china",is_map_symbol_show=False,)
    .set_global_opts(title_opts=opts.TitleOpts(title="Map-基本示例"), visualmap_opts=opts.VisualMapOpts())
    .render_notebook()
)

image.pngimage.gif

这样看已经比刚开始的样子好了很多,虽然可以看出不同省份之间的差异,但是还是有一点让人不爽的就是大部分省份是没有值的,要是全国都有值就更好了👇

image.pngimage.gif

所以Pyecharts中的Map更应该适合能将地图填满的数据,这样才能让图看上去更丰富,如果只有地图中小部分省市的数据还是来个柱状图更直观!

Pyecharts—Geo

我们先来看看Geo绘制出来的地图长啥样,还是刚刚的数据,代码也并不复杂

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
from pyecharts.globals import ChartType
c = (
    Geo()
    .add_schema(maptype="china")
    .add(
        "",
        [list(z) for z in zip(Faker.provinces, Faker.values())],
        type_=ChartType.HEATMAP,
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(),
        title_opts=opts.TitleOpts(title="Geo-热力地图"),
    )
)
c.render_notebook()

image.pngimage.gif

可以看到,Geo绘制出来的地图不会显示省份/城市的名字,并且用热力图的方式让数据差异更直观,而这恰好解决了Map不适用与小部分数据的短板。所以当数据量不是很多的时候又想绘制地图就可以考虑使用Geo并通过热力图的方法来展示。当然Geo还支持不同样式动态的流向地图(制作可以查阅相关文档)

2111.gif2112.gifimage.gif

image.gif

Pyecharts—Bmap

Bmap就是百度地图,也是我经常用的一种。Pyecharts可以调用百度地图的接口来让地图更加丰富,比如还是之前的数据,我们使用Bmap来制作

image.gifimage.png

正如上图展示的,使用Bmap绘制出来的地图更接近我们平时使用的地图,并支持缩放来查看更多细节而更加真实,不过使用Bmap之前需要去百度地图开放平台申请一个API KEY才能使用。

image.pngimage.gif

Pyecharts—Map3D

上面三种地图都是2D的图形,Pyecharts也支持创建3d地图,比如下面的代码就能在3D地图上以柱状图来展示数据

image.pngimage.gif

可以看到,3D地图会让数据更加立体的展示出来,不过虽然炫酷,但是要整理经纬度数据等需要消耗太多的时间,而且代码调整起来也比之前几种地图更加复杂,所以我并不是经常使用,偶尔花点时间用来点缀PPT也是可以的!

结束语

以上就是对Pyecharts可以制作四种地理图表的一个简单总结,我想你应该明白它们的区别并能在制作地图时选择合适的那一个,不过制作可视化地图并不只有Pyecharts,还需要根据自己的数据与环境选择合适的工具!

相关文章
|
安全 网络协议 数据安全/隐私保护
掌握Qt和C++:构建你的第一个P2P应用程序
掌握Qt和C++:构建你的第一个P2P应用程序
422 3
|
JavaScript 数据可视化 定位技术
手把手教你用Pyecharts绘制地图~
大家好,我是志斌~ 今天来给大家分享一下如何用Pyecharts绘制地图。
2606 0
|
4月前
|
运维 虚拟化 Windows
Hyper-V Win8虚拟机启动错误修复教程
针对Hyper-V Win8虚拟机启动错误,本教程提供详细修复步骤。首先进行硬件兼容性检查,确保CPU支持虚拟化并启用,同时检查内存和存储空间是否充足。接着以管理员身份登录,使用事件查看器排查错误。管理Hyper-V服务,确保相关服务正常运行。检查虚拟机状态,优化资源分配,并修复虚拟硬盘文件。更新系统和重装Hyper-V组件也是有效手段。最后,排查硬件故障、备份数据及处理第三方软件冲突。通过这些步骤,多数启动问题可得到解决。
|
5月前
|
数据采集 Web App开发 监控
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
在现代网络爬虫实践中,动态网页加载和反爬虫机制增加了数据采集的难度。采用无头浏览器技术(如Selenium与ChromeDriver)可有效模拟用户行为、执行JavaScript,获取动态内容。通过设置代理IP、伪装User-Agent和处理Cookies,提升爬虫隐蔽性和稳定性。该方案适用于电商价格监控、社交媒体数据采集和招聘信息抓取等场景,实现更高效的数据获取。
442 2
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
|
定位技术 Python
pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图
pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图
|
域名解析 缓存 网络协议
如何解决域名解析不生效问题?
文中对域名解析不生效的原因进行了分析,并针对最常见的本地递归域名服务器缓存不生效的问题提出了解决方案,尤其移动域名解析HTTPDNS对无线场景下的应用特别有效。
32248 0
|
8月前
|
数据可视化 搜索推荐 Shell
Python与Plotly:B站每周必看榜单的可视化解决方案
Python与Plotly:B站每周必看榜单的可视化解决方案
|
12月前
|
负载均衡 Java Spring
@EnableFeignClients注解源码解析
@EnableFeignClients注解源码解析
195 14
|
运维 芯片
主板电源符号揭秘:深入了解VDD、VDDQ、5VSB及其他
本文介绍了计算机主板电源设计中的关键符号,包括VDD(通用数字电路电源)、VDDQ(高稳定度滤波电源)、5VSB和3VSB(待机电源)、VCC3(+3V主要电源)、VDIMM(内存专用电源)、SB(待机电池电源)以及VCORE(CPU核心电压)。这些电源符号各自对应特定的供电区域和功能,确保主板组件的稳定运行。理解这些电源符号对于主板电源管理、故障排查和系统优化具有重要意义。
3854 3
|
机器学习/深度学习 算法 Python
Python之建模规划篇--非线性规划
Python之建模规划篇--非线性规划
Python之建模规划篇--非线性规划
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等