介紹 5種 繪制炫酷的地圖方法

地圖可視化是一種非常直觀的數(shù)據(jù)分析結(jié)果展現(xiàn)形式,python 有很多可視化庫可以實現(xiàn),pyecharts 就是很多 python 愛好者喜愛的實現(xiàn)地圖可視化方法之一。
不可否認(rèn),pyecharts 繪制的地圖實現(xiàn)方便、圖形美觀而且支持交互,但在面對不同需求時,其實我們還有很多其他手段實現(xiàn)地圖可視化。
一、序
本文主要是介紹了多種實現(xiàn)地圖可視化的方法,并對其繪制方式進(jìn)行簡單介紹和對比。主要包括以下方式:1、python 之 pyecharts2、百度之 Echarts
3、office之 Excel 和 ppt4、商業(yè)智能軟件 Tableau
二、 pyecharts
python愛好者實現(xiàn)地圖可視化時的首選庫莫過于pyecharts,是一個用于生成 Echarts 圖表的類庫,實現(xiàn)起來非常簡單,做出的圖表也很美觀。
pyecharts 分為 v0.5 和 v1 兩個大版本,v0.5 和 v1 間不兼容,v1 是一個全新的版本。本文案例使用版本1.6。
import?pyecharts
pyecharts.__version__
#'1.6.0'
在制作地理地圖方面,包括三個類,分別是map、Geo和Bmap,其中前兩者是我們常用的地圖可視化類,Bmap是百度地圖的一個接口。
1、Map類生成地圖
使用map類繪制地圖支持世界、國家、省市和區(qū)縣四級地圖,使用前需獨立安裝。
from?pyecharts.charts?import?Map
from?pyecharts?import?options?as?opts
regions?=?['上城區(qū)','下城區(qū)','拱墅區(qū)','濱江區(qū)','江干區(qū)','西湖區(qū)','蕭山區(qū)','余杭區(qū)','臨安市','富陽區(qū)','建德市','淳安縣','桐廬縣']
values?=?[94,?98,?76,?89,?65,?64,?56,?59,?45,?23,?22,?22,?21]#隨便輸入的數(shù)據(jù)
m?=?Map()
m.add("",?zip(regions,?values),?maptype="杭州")
m.set_global_opts(title_opts=opts.TitleOpts(title="杭州各區(qū)塊吸引力",?pos_left?=?'center'?),visualmap_opts=opts.VisualMapOpts(max_=100))
m.render(r'hz.html')V0.5到V1.0以后版本的一個重要特性是支持類方法的鏈?zhǔn)秸{(diào)用:
m?=?(Map()
.add("",?zip(regions,?values),?"杭州")
.set_global_opts(title_opts=opts.TitleOpts(title="杭州各區(qū)塊吸引力",?pos_left?=?'center'?),visualmap_opts=opts.VisualMapOpts(max_=100))
.render(r'hz.html'))Map類常用的方法是
##Map類常用方法,各方法里又支持大量參數(shù)進(jìn)行個性化設(shè)置
add()
set_global_opts()
set_series_opts()
render()
pyecharts生成的杭州市地圖2、Geo類生成地圖
與Map類似,Geo也可以通過設(shè)置maptype參數(shù)選擇地圖類型,默認(rèn)是china,所支持方法與Map類似,具體可詳細(xì)參考相關(guān)文檔。
from?pyecharts.charts?import?Geo
from?pyecharts.globals?import?GeoType
from?pyecharts?import?options?as?opts
regions?=?['北京','上海','天津','重慶','廣州','深圳','杭州','南京','成都','武漢','西安','鄭州','廈門']
values?=?[94,?98,?76,?89,?65,?64,?56,?59,?45,?23,?22,?22,?21]#隨便輸入的數(shù)據(jù)
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')
????)

三、 Echarts
實際上,pyecharts之所以如此強大,是發(fā)揮了python膠水語言的特性得以引入Echarts。Echarts是百度的一個圖表庫,基于JavaScript語言實現(xiàn),官網(wǎng)及其社區(qū)有大量開源的案例作品。站在巨人的肩膀上,本著不重復(fù)制造輪子的原則,即便不懂js語言,也可以通過簡單的更改數(shù)據(jù)和基本設(shè)置來繪制精美的可視化地圖。
基于現(xiàn)有案例,輸入關(guān)鍵數(shù)據(jù)即可繪制可視化地圖自從pyecharts1.0版本后,其接口函數(shù)和0.5版本有很大區(qū)別。實際上,比對pyecharts源碼會發(fā)現(xiàn),其參數(shù)風(fēng)格與echarts的js源碼很像。從這個角度說,如果一個python愛好者對pyecharts庫足夠熟悉的話,那么反過來也會很容易上手百度Echarts圖表。
Echarts地圖均支持交互
注:上述兩個可視化地圖案例均選自Echarts的gallery社區(qū)還有很多其他類似Echarts的可視化平臺,如大眾制圖、圖表秀等,均可在線制作大量圖表,不過一般需要注冊后方可使用,而Echarts則可直接使用。
四、 Office
作為軟件屆的翹楚,微軟不可能不占有一席之地;作為數(shù)據(jù)分析和可視化的通用基礎(chǔ)工具,Excel和PPT也絕不會在地圖可視化方面缺席。所以,如果說用python可視化庫和百度Echarts在線制作地圖可視化還不夠接地氣的話,那么office絕對稱得上是家喻戶曉、人盡可用。
在Excel界面中指定多列數(shù)據(jù),其中一列是位置信息(如省份或者城市名),其余表示要可視化的數(shù)據(jù),選擇插入選項卡下插入三維地圖功能,即可進(jìn)入Excel制演示圖界面。
Excel三維地圖制作柱狀圖然而,以北京各區(qū)劃為例,Excel默認(rèn)情況下還會識別出其他地址:例如北京市朝陽區(qū)還有吉林省長春市朝陽區(qū),通州區(qū)也出現(xiàn)在江蘇省南通市通州區(qū)。
Excel在識別地理位置方面還有些問題在ppt中制作可視化地圖也非常容易,手段也多種多樣,主要還是依靠添加矢量地圖然后進(jìn)行區(qū)域編輯來實現(xiàn)的。添加矢量地圖的方式有很多,個人選用PA插件下載地圖圖標(biāo)添加。對于添加的矢量地圖,可以任意對選中地區(qū)進(jìn)行著色,從而體現(xiàn)數(shù)據(jù)差異。
ppt中制作可視化地圖僅需逐塊著色即可五、?Tableau
談到數(shù)據(jù)可視化,幾乎避免不了要與BI軟件產(chǎn)生聯(lián)系,比如說Tableau。Tableau是專門為制作可視化圖表而存在的,自然少不了地圖可視化。
與Excel類似,在Tableau數(shù)據(jù)源中輸入地理位置信息及相應(yīng)數(shù)據(jù)后,可以通過簡單的拖拽和設(shè)置實現(xiàn)地圖繪制。
最為方便的是,Tableau支持便捷的篩選、標(biāo)記和分組等功能。不過考慮Tableau的使用普及程度還遠(yuǎn)遠(yuǎn)不如Office、網(wǎng)頁在線等平臺,所以Tableau可能并不會成為首選。

與Tableau類似的可用于制作可視化地圖的軟件還有PowerBI、DataFocus等,都可以簡單操作快速上手。
六、 對比與總結(jié)
1、可視化地圖是一種常用的可視化展現(xiàn)形式,實現(xiàn)手段也多種多樣
2、python的pyecharts庫是基于百度Echarts庫實現(xiàn)的,常用Map、Geo兩個類制圖,接口豐富、設(shè)置多樣,圖表美觀且支持交互
3、百度Echarts支持在線生成可視化地圖,社區(qū)有大量精美案例可供選擇,簡單編輯數(shù)據(jù)即可
4、office的Excel和PPT均可制作可視化地圖,二者是幾乎人人都會用的辦公軟件,操作簡單、門檻較低,但功能也相對單一
5、Tableau軟件制作可視化地圖也非常方便且功能強大,但使用靈便程度不如前幾種方式
評論
圖片
表情
