「Python」使用Pyecharts生成疫情分布地图

Python014

「Python」使用Pyecharts生成疫情分布地图,第1张

最近受江苏疫情影响,好多小伙伴都居家办公咯!为了密切关注疫情动态,最近写了爬取疫情分布的脚本,参考上篇链接。

既然我们已经获得了相应的江苏各个地级市的疫情数据,那么我们如何来使用Python实现将数据可视化在地图上呢?

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

简单来说,pyecharts具有以下特性:

3. Pyecharts 安装

使用pip进行安装如下:

因为我们需要使用pycharts绘制地图,此时我们还需要安装相应的地图文件包:

其中:

echarts-countries-pypkg 包为全球国家地图

echarts-china-provinces-pypkg包为中国省级地图

echarts-china-cities-pypkg 包为中国市级地图

安装完上述绘制地图相关的python包后,我们接下来开始画疫情分布地图。

首先,我们先来查看一段Pyecharts相关实现:

上述代码解释如下:

运行后会在当前目录生成 map_jiangsu_0803.html,用浏览器打开后结果如下:

当鼠标移动到对应区域后,会显示出对应地级市今日新增人数。

上述脚本虽然可以实现我们的功能,但是颜色灰灰的,太过于单调,接下来我们来想办法进行美化,实现代码如下:

代码解释如下:

运行后会在当前目录生成 map_jiangsu_0803_new.html,用浏览器打开后结果如下:

同理我们可以得到现有确诊人数分布如下:

进而我们可以得到累计确诊人数分布如下:

1. 准备工作

有朋友可能没用过 folium ,它其实就是 python 的一个 专业绘制地图 的第三方库,所以在使用之前需要先安装它。

在安装完成之后,我们可以在 jupyterlab 进行演示如下:

对于上面的输出,其实是一个 可交互 的地图,支持放大缩写拖拽等等。

如果你想将输出存在本地,可以这样来:

可以看到本地就存了这个一个文件,浏览器打开就可以进行交互式操作了。

以上就是一个平平淡淡的过程......

2. 关于folium.Map()

在上一部分我们可以看到这个 map 玩意直接就是一个地图啦,这里我们就介绍一下它常用的几个参数。

参数可真多啊!!

以上是常用的一些参数,而最常用的莫过于 location 、 zoom_start 和 tiles 等。

内建地图样式 还有一下几种:

我们简单试下 location 和 zoo_start 参数:

可以看到 清华大学校区

以上对 Map 的参数进行了简单的介绍,接下来,我们就来看看地图底图样式的选取情况吧~

3. 内建地图底图样式

我们看到 folium 其实有好几种内建地图底图样式,其中部分需要去申请 key ,由于我这边没有申请成功就不做演示了。

地势地形底图

黑白无标记底图

水墨画底图

以上就是内建地图底图样式的一些展示,部分需要key的大家可以去这个网站申请:

另外,在这里也可以找到一些地图底图

我后续也会去研究这些地图底图样式,试着分享更多有趣的地图分享给大家。

当然了,国内咱们用的较多的地图是高德、百度和腾讯地图等,接下来我们就来玩玩!

4. 多种第三方地图底图样式

这里我将演示高德地图、智图GeoQ和腾讯地图等

高德地图的 中英文地图、卫星影像图、街道图与常规图

中英文地图

纯英文地图

卫星影像图

街道图

常规图

反正我觉得这个蛮好的,用起来简单

多种风格地图,即拿即用

彩色版

暖色版

灰色版

蓝黑版

英文版

中国行政区划边界

水系专题

街道网图

暖色街道网图

需要注册一个key

天地图影像

天地图影像注记

天地图矢量

天地图矢量注记

天地图地形

天地图地形注记

百度地图我这边测试失败了,暂时没有找到合适的替换方案。

5. 补充

其实,我们还可以找更多的 地图底图瓦片URL 来进行替换,多样化我们的地图绘制。

另外,大家在用经纬度坐标点进行地图绘制的时候,比如标记点、绘制区域、热力图绘制等等, 需要考虑经纬度坐标是哪个地图系下面的,然后再用对应地图系的相关底图进行绘制才准确!