刘早起 一行玩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格式保存
所以这个最简单的地图长这样
告诉我你对这张地图的第一感觉,除了丑就是不协调,主要就是因为下面三点:
-
顶部的图例,怎么看怎么不爽
-
有数据省份的红点,怎么看怎么不爽
-
就在地图上给有数据的省份打了几个点,怎么看怎么不爽
所以我在使用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() )
这样看已经比刚开始的样子好了很多,虽然可以看出不同省份之间的差异,但是还是有一点让人不爽的就是大部分省份是没有值的,要是全国都有值就更好了????
所以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()
可以看到,Geo绘制出来的地图不会显示省份/城市的名字,并且用热力图的方式让数据差异更直观,而这恰好解决了Map不适用与小部分数据的短板。所以当数据量不是很多的时候又想绘制地图就可以考虑使用Geo并通过热力图的方法来展示。当然Geo还支持不同样式动态的流向地图(制作可以查阅相关文档)
Pyecharts—Bmap
Bmap就是百度地图,也是我经常用的一种。Pyecharts可以调用百度地图的接口来让地图更加丰富,比如还是之前的数据,我们使用Bmap来制作
正如上图展示的,使用Bmap绘制出来的地图更接近我们平时使用的地图,并支持缩放来查看更多细节而更加真实,不过使用Bmap之前需要去百度地图开放平台申请一个API KEY才能使用。
Pyecharts—Map3D
上面三种地图都是2D的图形,Pyecharts也支持创建3d地图,比如下面的代码就能在3D地图上以柱状图来展示数据
可以看到,3D地图会让数据更加立体的展示出来,不过虽然炫酷,但是要整理经纬度数据等需要消耗太多的时间,而且代码调整起来也比之前几种地图更加复杂,所以我并不是经常使用,偶尔花点时间用来点缀PPT也是可以的!
结束语
以上就是对Pyecharts可以制作四种地理图表的一个简单总结,我想你应该明白它们的区别并能在制作地图时选择合适的那一个,不过制作可视化地图并不只有Pyecharts,还需要根据自己的数据与环境选择合适的工具!