繪製炫酷的地圖,不僅有Pyecharts!

點擊「 Python編程與實戰 」,選擇「置頂公衆號」

第一時間獲取 Python 技術乾貨!html


轉自:數據分析1480
地圖可視化是一種很是直觀的數據分析結果展示形式,python 有不少可視化庫能夠實現,pyecharts 就是不少 python 愛好者喜好的實現地圖可視化方法之一。不能否認,pyecharts 繪製的地圖實現方便、圖形美觀並且支持交互,但在面對不一樣需求時,其實咱們還有不少其餘手段實現地圖可視化。

1、序


本文主要是介紹了多種實現地圖可視化的方法,並對其繪製方式進行簡單介紹和對比。主要包括如下方式:
一、python 之 pyecharts
二、百度之 Echarts
三、office之 Excel 和 ppt
四、商業智能軟件 Tableau

2、 pyecharts

python愛好者實現地圖可視化時的首選庫莫過於pyecharts,是一個用於生成 Echarts 圖表的類庫,實現起來很是簡單,作出的圖表也很美觀。

pyecharts 分爲 v0.5 和 v1 兩個大版本,v0.5 和 v1 間不兼容,v1 是一個全新的版本。本文案例使用版本1.6。

import pyecharts
pyecharts.__version__
#'1.6.0'
python


在製做地理地圖方面,包括三個類,分別是map、Geo和Bmap,其中前二者是咱們經常使用的地圖可視化類,Bmap是百度地圖的一個接口。web


一、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))
m.render(r'hz.html')微信


V0.5到V1.0之後版本的一個重要特性是支持類方法的鏈式調用:app

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'))echarts


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 = [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')
    )





3、 Echarts


實際上,pyecharts之因此如此強大,是發揮了python膠水語言的特性得以引入Echarts。Echarts是百度的一個圖表庫,基於JavaScript語言實現,官網及其社區有大量開源的案例做品。站在巨人的肩膀上,本着不重複製造輪子的原則,即使不懂js語言,也能夠經過簡單的更改數據和基本設置來繪製精美的可視化地圖。

基於現有案例,輸入關鍵數據便可繪製可視化地圖

自從pyecharts1.0版本後,其接口函數和0.5版本有很大區別。實際上,比對pyecharts源碼會發現,其參數風格與echarts的js源碼很像。從這個角度說,若是一個python愛好者對pyecharts庫足夠熟悉的話,那麼反過來也會很容易上手百度Echarts圖表。

Echarts地圖均支持交互


注:上述兩個可視化地圖案例均選自Echarts的gallery社區

還有不少其餘相似Echarts的可視化平臺,如大衆製圖、圖表秀等,都可在線製做大量圖表,不過通常須要註冊後方可以使用,而Echarts則可直接使用。

4、 Office


做爲軟件屆的翹楚,微軟不可能不佔有一席之地;做爲數據分析和可視化的通用基礎工具,Excel和PPT也毫不會在地圖可視化方面缺席。因此,若是說用python可視化庫和百度Echarts在線製做地圖可視化還不夠接地氣的話,那麼office絕對稱得上是家喻戶曉、人儘可用。


在Excel界面中指定多列數據,其中一列是位置信息(如省份或者城市名),其他表示要可視化的數據,選擇插入選項卡下插入三維地圖功能,便可進入Excel制演示圖界面。


Excel三維地圖製做柱狀圖

然而,以北京各區劃爲例,Excel默認狀況下還會識別出其餘地址:例如北京市朝陽區還有吉林省長春市朝陽區,通州區也出如今江蘇省南通市通州區。
Excel在識別地理位置方面還有些問題

在ppt中製做可視化地圖也很是容易,手段也多種多樣,主要仍是依靠添加矢量地圖而後進行區域編輯來實現的。添加矢量地圖的方式有不少,我的選用PA插件下載地圖圖標添加。對於添加的矢量地圖,能夠任意對選中地區進行着色,從而體現數據差別。
ppt中製做可視化地圖僅需逐塊着色便可

5、 Tableau


談到數據可視化,幾乎避免不了要與BI軟件產生聯繫,好比說Tableau。Tableau是專門爲製做可視化圖表而存在的,天然少不了地圖可視化。與Excel相似,在Tableau數據源中輸入地理位置信息及相應數據後,能夠經過簡單的拖拽和設置實現地圖繪製。最爲方便的是,Tableau支持便捷的篩選、標記和分組等功能。不過考慮Tableau的使用普及程度還遠遠不如Office、網頁在線等平臺,因此Tableau可能並不會成爲首選。


與Tableau相似的可用於製做可視化地圖的軟件還有PowerBI、DataFocus等,均可以簡單操做快速上手。

6、 對比與總結


一、可視化地圖是一種經常使用的可視化展示形式,實現手段也多種多樣


二、python的pyecharts庫是基於百度Echarts庫實現的,經常使用Map、Geo兩個類製圖,接口豐富、設置多樣,圖表美觀且支持交互


三、百度Echarts支持在線生成可視化地圖,社區有大量精美案例可供選擇,簡單編輯數據便可


四、office的Excel和PPT都可製做可視化地圖,兩者是幾乎人人都會用的辦公軟件,操做簡單、門檻較低,但功能也相對單一


五、Tableau軟件製做可視化地圖也很是方便且功能強大,但使用靈便程度不如前幾種方式


抽獎送書啦!


今日贈書《Python大數據與機器學習實戰》





抽獎方式以下:

點擊抽獎,自動開獎


推薦閱讀


APP爬蟲|frida-某資訊app逆向過程

爬蟲|破解APP中阿里雲滑動驗證碼

APP爬蟲|逆向神器 frida 初試



THANKS

- End -




點個「在看」必升職加薪喔!

本文分享自微信公衆號 - Python編程與實戰(GoPy1024)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索