本文主要是介紹了多種實現地圖可視化的方法,并對其繪制方式進行簡單介紹和對比。主要包括以下方式:
python之pyecharts
百度之Echarts
office之Excel和ppt
商業智能軟件Tableau
import?pyecharts
pyecharts.__version__
#'1.6.0'
在制作地理地圖方面,包括三個類,分別是map、Geo和Bmap,其中前兩者是我們常用的地圖可視化類,Bmap是百度地圖的一個接口。
Map類生成地圖
使用map類繪制地圖支持世界、國家、省市和區縣四級地圖,使用前需獨立安裝。
from?pyecharts.charts?import?Map
from?pyecharts?import?options?as?opts
regions?=?['上城區','下城區','拱墅區','濱江區','江干區','西湖區','蕭山區','余杭區','臨安市','富陽區','建德市','淳安縣','桐廬縣']
values?=?[94,?98,?76,?89,?65,?64,?56,?59,?45,?23,?22,?22,?21]#隨便輸入的數據
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))
m.render(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))
.render(r'hz.html'))
Map類常用的方法是##Map類常用方法,各方法里又支持大量參數進行個性化設置
add()
set_global_opts()
set_series_opts()
render()
pyecharts生成的杭州市地圖
Geo類生成地圖
與Map類似,Geo也可以通過設置maptype參數選擇地圖類型,默認是china,所支持方法與Map類似,具體可詳細參考相關文檔。
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]#隨便輸入的數據
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')
????)
實際上,pyecharts之所以如此強大,是發揮了python膠水語言的特性得以引入Echarts。Echarts是百度的一個圖表庫,基于JavaScript語言實現,官網及其社區有大量開源的案例作品。站在巨人的肩膀上,本著不重復制造輪子的原則,即便不懂js語言,也可以通過簡單的更改數據和基本設置來繪制精美的可視化地圖。
基于現有案例,輸入關鍵數據即可繪制可視化地圖
自從pyecharts1.0版本后,其接口函數和0.5版本有很大區別。實際上,比對pyecharts源碼會發現,其參數風格與echarts的js源碼很像。從這個角度說,如果一個python愛好者對pyecharts庫足夠熟悉的話,那么反過來也會很容易上手百度Echarts圖表。
Echarts地圖均支持交互
注:上述兩個可視化地圖案例均選自Echarts的gallery社區
還有很多其他類似Echarts的可視化平臺,如大眾制圖、圖表秀等,均可在線制作大量圖表,不過一般需要注冊后方可使用,而Echarts則可直接使用。
04 Office作為軟件屆的翹楚,微軟不可能不占有一席之地;作為數據分析和可視化的通用基礎工具,Excel和PPT也絕不會在地圖可視化方面缺席。所以,如果說用python可視化庫和百度Echarts在線制作地圖可視化還不夠接地氣的話,那么office絕對稱得上是家喻戶曉、人盡可用。
在Excel界面中指定多列數據,其中一列是位置信息(如省份或者城市名),其余表示要可視化的數據,選擇插入選項卡下插入三維地圖功能,即可進入Excel制演示圖界面。Excel三維地圖制作柱狀圖
然而,以北京各區劃為例,Excel默認情況下還會識別出其他地址:例如北京市朝陽區還有吉林省長春市朝陽區,通州區也出現在江蘇省南通市通州區。
Excel在識別地理位置方面還有些問題
在ppt中制作可視化地圖也非常容易,手段也多種多樣,主要還是依靠添加矢量地圖然后進行區域編輯來實現的。添加矢量地圖的方式有很多,個人選用PA插件下載地圖圖標添加。對于添加的矢量地圖,可以任意對選中地區進行著色,從而體現數據差異。
ppt中制作可視化地圖僅需逐塊著色即可
05 Tableau談到數據可視化,幾乎避免不了要與BI軟件產生聯系,比如說Tableau。Tableau是專門為制作可視化圖表而存在的,自然少不了地圖可視化。與Excel類似,在Tableau數據源中輸入地理位置信息及相應數據后,可以通過簡單的拖拽和設置實現地圖繪制。最為方便的是,Tableau支持便捷的篩選、標記和分組等功能。不過考慮Tableau的使用普及程度還遠遠不如Office、網頁在線等平臺,所以Tableau可能并不會成為首選。
與Tableau類似的可用于制作可視化地圖的軟件還有PowerBI、DataFocus等,都可以簡單操作快速上手。
06?對比與總結可視化地圖是一種常用的可視化展現形式,實現手段也多種多樣
python的pyecharts庫是基于百度Echarts庫實現的,常用Map、Geo兩個類制圖,接口豐富、設置多樣,圖表美觀且支持交互
百度Echarts支持在線生成可視化地圖,社區有大量精美案例可供選擇,簡單編輯數據即可
office的Excel和PPT均可制作可視化地圖,二者是幾乎人人都會用的辦公軟件,操作簡單、門檻較低,但功能也相對單一
Tableau軟件制作可視化地圖也非常方便且功能強大,但使用靈便程度不如前幾種方式
