使用 Python 地图绘制工具 -- folium 全攻略

Python015

使用 Python 地图绘制工具 -- folium 全攻略,第1张

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 来进行替换,多样化我们的地图绘制。

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

Folium是Leaflet.js的Python的API,即可以使用Python语言调用Leaflet的地图可视化能力。

其中,Leaflet是一个非常轻的前端地图可视化库。

默认参数为OpenStreetMap地图,(0,0)经纬度坐标,全球范围缩放

最简单的配置,初始化中心位置和缩放尺度

文档说内置“Mapbox Bright”和“Mapbox Control Room”,本次实验中无法加载

瓦片地址参考 http://openwhatevermap.xyz

瓦片地址参考页面顶部链接

各种要素可以设置颜色、大小、文字标记等属性,具体看操作手册

这里以高德地图为底图,添加点、线、面形状

以高德地图API的坐标提取器为准,取操场位置的坐标,并打在默认地图和高德地图上,可以看到坐标不同

做地图可视化的方法,通常有

其中

python语言近年来比较热,也有很多可视化库可以用,但是在地图的可视化方面很弱。有一些可视化库也支持一点点,如plotly内置的mapbox可视化;还有上面提到的的pyecharts可以做形状,底图(应该)可以用百度地图。但是这些或者不灵活、或者限定了底图,基本能力还是有的,虽然都不全。

背景完,具体内容到页面顶部。

在上一课中,我们已经介绍过使用 Plotly 实现地理信息可视化的方法。但是,那个工具对我们不是很友好,特别是由于某种不可抗力的存在,可能根本无法调试。

不过,pyecharts 的确在地理信息可视化上做得不错——如果仅做国内地图,特别推荐使用,还是通过示例来说明吧。

首先,要安装地图文件,安装方法如下:

不仅可以安装上述官方提供的地图文件,还能够自己制作个性化的地图扩展, 具体请点击这里参阅 。

有了上述基础,就可以进行地理信息可视化了(以下示例的数据源, 请点击这里查看 )。

实现上述效果的类是 Geo,默认情况下绘制散点图,此外可以实现 type='effectScatter'(闪耀的散点图)和 type='heatmap'(热图)。

此图也是动态交互的,通过左侧图例选择不同数值范围,相应地会显示该范围内的数据。

如果按照前面所述安装了各种地图文件,还可以在 geo.add 方法中规定地理范围。

在 pyecharts 地图中认可的城市名称都如同上述结果显示的那样,例如“阜新”,不要写成“阜新市”。

下面就绘制江苏省的空气质量分布图。

输出结果:

这里的 geo.add 参数与前面的不同,导致了展示效果的差异。

一直以来,房价都是人们关注的话题,下面就用可视化的方式研究一下近十年(2009—2018 年)全国部分城市平均房价(数据源: https://github.com/qiwsir/DataSet/tree/master/house )。

输出结果:

在热图查看房价的基础上,为了更准确查看某些城市的房价走向,可以使用折线图看看趋势,例如下列几个城市。