8

介绍 5种 绘制炫酷的地图方法

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI0OTc0MzAwNA%3D%3D&%3Bmid=2247486707&%3Bidx=2&%3Bsn=82ff4958faf11159ce756474b53d1efb
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

3YNBr2Z.jpg!web

来源 | 数据分析1480

地图可视化是一种非常直观的数据分析结果展现形式,python 有很多可视化库可以实现,pyecharts 就是很多 python 爱好者喜爱的实现地图可视化方法之一。

不可否认,pyecharts 绘制的地图实现方便、图形美观而且支持交互,但在面对不同需求时,其实我们还有很多其他手段实现地图可视化。

一、序

本文主要是介绍了多种实现地图可视化的方法,并对其绘制方式进行简单介绍和对比。主要包括以下方式:

1、python 之 pyecharts

2、百度之 Echarts

3、office之 Excel 和 ppt

4、商业智能软件 Tableau

二、 pyecharts

python爱好者实现地图可视化时的首选库莫过于pyecharts,是一个用于生成 Echarts 图表的类库,实现起来非常简单,做出的图表也很美观。

pyecharts 分为 v0.5 和 v1 两个大版本,v0.5 和 v1 间不兼容,v1 是一个全新的版本。本文案例使用版本1.6。

import pyecharts

pyecharts.__version__

#'1.6.0'

在制作地理地图方面,包括三个类,分别是map、Geo和Bmap,其中前两者是我们常用的地图可视化类,Bmap是百度地图的一个接口。

1、Map类生成地图

使用map类绘制地图支持世界、国家、省市和区县四级地图,使用前需独立安装。

from pyecharts.charts  import Map

from pyecharts  import options  as opts

regions = [ '上城区' , '下城区' , '拱墅区' , '滨江区' , '江干区' , '西湖区' , '萧山区' , '余杭区' , '临安市' , '富阳区' , '建德市' , '淳安县' , '桐庐县' ]

values = [ 94987689656456594523222221 ] #随便输入的数据

m = Map()

m.add( "" , zip(regions, values), maptype="杭州")

m.set_global_opts(title_opts=opts.TitleOpts(title= "杭州各区块吸引力" , pos_left =  'center' ),visualmap_opts=opts.VisualMapOpts(max_= 100 ))

r'hz.html'

)

V0.5到V1.0以后版本的一个重要特性是支持类方法的链式调用:

m = (Map()

.add( "" , zip(regions, values),  "杭州" )

.set_global_opts(title_opts=opts.TitleOpts(title= "杭州各区块吸引力" , pos_left =  'center' ),visualmap_opts=opts.VisualMapOpts(max_= 100 ))

r'hz.html'

))

Map类常用的方法是

##Map类常用方法,各方法里又支持大量参数进行个性化设置

add()

set_global_opts()

set_series_opts()

render()

6N77viM.png!web

pyecharts生成的杭州市地图

2、Geo类生成地图

与Map类似,Geo也可以通过设置maptype参数选择地图类型,默认是china,所支持方法与Map类似,具体可详细参考相关文档。

from pyecharts.charts  import Geo

from pyecharts.globals  import GeoType

from pyecharts  import options  as opts

regions = [ '北京' , '上海' , '天津' , '重庆' , '广州' , '深圳' , '杭州' , '南京' , '成都' , '武汉' , '西安' , '郑州' , '厦门' ]

values = [ 94987689656456594523222221 ] #随便输入的数据

g = (Geo()

.add_schema(maptype= "china" )

.add( "geo" , zip(regions, values), type_ = GeoType.EFFECT_SCATTER)

.set_series_opts(label_opts=opts.LabelOpts(is_show= False ))

.set_global_opts(

visualmap_opts=opts.VisualMapOpts(is_piecewise= True ),

title_opts=opts.TitleOpts(title= "Geo涟漪图" ))

.render( 'geo.html' )

)

ruUvYjF.png!web

三、 Echarts

实际上,pyecharts之所以如此强大,是发挥了python胶水语言的特性得以引入Echarts。Echarts是百度的一个图表库,基于JavaScript语言实现,官网及其社区有大量开源的案例作品。站在巨人的肩膀上,本着不重复制造轮子的原则,即便不懂js语言,也可以通过简单的更改数据和基本设置来绘制精美的可视化地图。

V3iUfeu.jpg!web

基于现有案例,输入关键数据即可绘制可视化地图

自从pyecharts1.0版本后,其接口函数和0.5版本有很大区别。实际上,比对pyecharts源码会发现,其参数风格与echarts的js源码很像。从这个角度说,如果一个python爱好者对pyecharts库足够熟悉的话,那么反过来也会很容易上手百度Echarts图表。

em2I3ya.gif

Echarts地图均支持交互

6rqUFzE.gif

注:上述两个可视化地图案例均选自Echarts的gallery社区

还有很多其他类似Echarts的可视化平台,如大众制图、图表秀等,均可在线制作大量图表,不过一般需要注册后方可使用,而Echarts则可直接使用。

四、 Office

作为软件届的翘楚,微软不可能不占有一席之地;作为数据分析和可视化的通用基础工具,Excel和PPT也绝不会在地图可视化方面缺席。所以,如果说用python可视化库和百度Echarts在线制作地图可视化还不够接地气的话,那么office绝对称得上是家喻户晓、人尽可用。

在Excel界面中指定多列数据,其中一列是位置信息(如省份或者城市名),其余表示要可视化的数据,选择插入选项卡下插入三维地图功能,即可进入Excel制演示图界面。

ZFvua2a.jpg!web

Excel三维地图制作柱状图

然而,以北京各区划为例,Excel默认情况下还会识别出其他地址:例如北京市朝阳区还有吉林省长春市朝阳区,通州区也出现在江苏省南通市通州区。

Inymqie.jpg!web

Excel在识别地理位置方面还有些问题

在ppt中制作可视化地图也非常容易,手段也多种多样,主要还是依靠添加矢量地图然后进行区域编辑来实现的。添加矢量地图的方式有很多,个人选用PA插件下载地图图标添加。对于添加的矢量地图,可以任意对选中地区进行着色,从而体现数据差异。

jQjqeeI.png!web

ppt中制作可视化地图仅需逐块着色即可

五、 Tableau

谈到数据可视化,几乎避免不了要与BI软件产生联系,比如说Tableau。Tableau是专门为制作可视化图表而存在的,自然少不了地图可视化。

与Excel类似,在Tableau数据源中输入地理位置信息及相应数据后,可以通过简单的 拖拽和设置 实现地图绘制。

最为方便的是,Tableau支持便捷的筛选、标记和分组等功能。不过考虑Tableau的使用普及程度还远远不如Office、网页在线等平台,所以Tableau可能并不会成为首选。

MfInUrZ.jpg!web

与Tableau类似的可用于制作可视化地图的软件还有PowerBI、DataFocus等,都可以简单操作快速上手。

六、 对比与总结

1、可视化地图是一种常用的可视化展现形式,实现手段也多种多样

2、python的pyecharts库是基于百度Echarts库实现的,常用Map、Geo两个类制图,接口丰富、设置多样,图表美观且支持交互

3、百度Echarts支持在线生成可视化地图,社区有大量精美案例可供选择,简单编辑数据即可

4、office的Excel和PPT均可制作可视化地图,二者是几乎人人都会用的办公软件,操作简单、门槛较低,但功能也相对单一

5、Tableau软件制作可视化地图也非常方便且功能强大,但使用灵便程度不如前几种方式

BzeYfeA.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK