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

2021-02-23 裸睡的豬


地圖可視化是一種非常直觀的數據分析結果展現形式,python 有很多可視化庫可以實現,pyecharts 就是很多 python 愛好者喜愛的實現地圖可視化方法之一。不可否認,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是百度地圖的一個接口。使用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類常用方法,各方法裡又支持大量參數進行個性化設置
add()
set_global_opts()
set_series_opts()
render()

與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的gallery社區還有很多其他類似Echarts的可視化平臺,如大眾製圖、圖表秀等,均可在線製作大量圖表,不過一般需要註冊後方可使用,而Echarts則可直接使用。
作為軟體屆的翹楚,微軟不可能不佔有一席之地;作為數據分析和可視化的通用基礎工具,Excel和PPT也絕不會在地圖可視化方面缺席。所以,如果說用python可視化庫和百度Echarts在線製作地圖可視化還不夠接地氣的話,那麼office絕對稱得上是家喻戶曉、人盡可用。在Excel界面中指定多列數據,其中一列是位置信息(如省份或者城市名),其餘表示要可視化的數據,選擇插入選項卡下插入三維地圖功能,即可進入Excel制演示圖界面。然而,以北京各區劃為例,Excel默認情況下還會識別出其他地址:例如北京市朝陽區還有吉林省長春市朝陽區,通州區也出現在江蘇省南通市通州區。
在ppt中製作可視化地圖也非常容易,手段也多種多樣,主要還是依靠添加矢量地圖然後進行區域編輯來實現的。添加矢量地圖的方式有很多,個人選用PA插件下載地圖圖標添加。對於添加的矢量地圖,可以任意對選中地區進行著色,從而體現數據差異。談到數據可視化,幾乎避免不了要與BI軟體產生聯繫,比如說Tableau。Tableau是專門為製作可視化圖表而存在的,自然少不了地圖可視化。與Excel類似,在Tableau數據源中輸入地理位置信息及相應數據後,可以通過簡單的拖拽和設置實現地圖繪製。最為方便的是,Tableau支持便捷的篩選、標記和分組等功能。不過考慮Tableau的使用普及程度還遠遠不如Office、網頁在線等平臺,所以Tableau可能並不會成為首選。
與Tableau類似的可用於製作可視化地圖的軟體還有PowerBI、DataFocus等,都可以簡單操作快速上手。

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

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

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

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

5、Tableau軟體製作可視化地圖也非常方便且功能強大,但使用靈便程度不如前幾種方式

相關焦點

  • 介紹一種繪製「地圖」圖表的方法
    (戳這裡)一文已介紹過如何用Origin的Google Map Import 插件在氣泡圖的背景中插入地圖,而內置的Map Type(如道路圖,地形圖、衛星圖等)僅有4種。 今天,再給大家介紹一款繪製地圖插圖的Origin小插件:Maps online。
  • Python 常用的 6 種繪製地圖方法
    今天來講一講在日常工作生活中我常用的幾種繪製地圖的方法,下面我將介紹下面這些可視化庫的地圖繪製方法,當然繪製漂亮的可視化地圖還有很多優秀的類庫,沒有辦法一一列舉pyecharts、plotly、folium、bokeh、basemap、geopandas、cartopyBoken 首先我們先介紹 Boken 繪製地圖的方法Bokeh 支持創建基本地圖可視化和基於處理地理數據的地圖可視化畫一張世界地圖
  • 5分鐘了解ArcGIS繪製地圖的方法步驟
    更多乾貨敬請關注:GIS前沿步驟1:顯示【組織要素模板】對話框:右鍵單擊【現狀地圖】圖層-【編輯要素】-【組織要素模板】;步驟2:創建模板:點擊創建模板-【創建新模板嚮導】-勾選【現狀地塊】圖層,點擊下一步,勾選【現狀地塊】圖層下的所有分類,點完成。步驟3:此時處於【開始編輯】狀態,選擇任意模板繪圖,這事地圖窗口中繪製出來的要素都會具有該模板定義的用地性質屬性值。
  • 聊一聊常用的6種繪製地圖的方法,超好用!
    作者 | 周蘿蔔來源 | 蘿蔔大雜燴今天來講一講在日常工作生活中我常用的幾種繪製地圖的方法,下面我將介紹下面這些可視化庫的地圖繪製方法,當然繪製漂亮的可視化地圖還有很多優秀的類庫,沒有辦法一一列舉。p.patches(xs='xs', ys='ys', source=geo_source)show(p)我們通過 GEO 地理數據來繪製地圖同樣非常方便,但是地圖看起來有一些單調,我們把不同的省份繪製成不同的顏色來看看with open("china.json", encoding="utf8") as f:
  • 如何用Origin繪製「地圖」插圖?
    但繪製地圖插圖絕不是件容易的事,從上面例子中風格各異的插圖可以看出,大家所用的方法「很雜」。 我能想到的方法有:截取地圖後用PS或AI做標記(數據較少時),也可用各種R包繪製,甚至動用地理信息專業的軟體ArcGIS等,當然也有人用矢量軟體如 Ai 的鋼筆工具臨摹出可分區著色的矢量圖… 今天,給大家介紹個簡單的方法,用Origin繪製以地圖為背景的氣泡圖(類似上面第二個例子)。
  • 用R在地圖上繪製網絡圖的三種方法
    需要將這些節點放置在地圖上,然後繪製他們之間的連結。"="id"))%>%  rename(xend=lon,yend=lat)assert_that(nrow(edges_for_plot)==nrow(edges))# 給每個節點一個權重(weight)值,在之後的繪圖中將反應在節點的大小上nodes$weight <- degree(g)下面再定義以下ggplot2主題用來繪製地圖
  • 工具分享 | linemap-快速繪製山巒地圖的R可視化包介紹
    上一次介紹了Python繪製svg的優秀可視化庫Pygal,今天我們介紹一下一個優秀的R地圖可視化繪製包-linemap包,顧名思義,該包是是為了繪製由線組成的地圖,其官網如下:https://github.com/rCarto/linemap。
  • 使用REmap繪製中國地圖
    上次我們介紹了使用ggplot2繪製中國熱力地圖,需要溫習的同學可以點擊以下連結 使用ggplot2繪製中國地圖  。
  • 地圖可視化繪製 | R-cartography 藝術地圖繪製
    本期推文我們介紹一個可以繪製頗具「藝術」風格地圖的可視化包-cartography,主要涉及的內容如下:R-cartography 簡介說到cartography包,用Python繪圖的小夥伴可能會想到cartopy(Basemap的下一代地圖可視化繪製包),下面就簡單介紹下
  • Photoshop繪製虛線的5種技巧方法!
    用PS製作虛線框一直以來都覺得是件很頭疼的事情,閒下來整理了下,發上來和大家分享一下,目的就是讓大家知道每種方法的優缺點。
  • Origin繪製泡泡地圖及經緯度的拾取
    其中,地名在坐標系中是不顯示的(因為地圖上有標註);經度和緯度與傳統數據圖的橫坐標、縱坐標數據一致;熱度雖然也是y數據,但它在Origin繪圖軟體中,是Scatter(散點)-Bubble(泡泡)圖的泡泡大小(相對直徑,可以調節相對大小)。數據表如圖2所示。對於設置每一列數據是x還是y的方法,在「編輯之譚」前期的文章中有介紹。
  • R可視乎 | 雙變量映射地圖繪製
    本期推文主要涉及的內容如下:雙變量映射地圖(Bivariate Choropleth Map)簡介R-ggplot2+biscale 輕鬆繪製雙變量映射地圖Bivariate Choropleth Map在繪製地圖時,我們常常使用單一變量進行映射處理,當然,這樣展示的結果可以很好的表現我們研究的特徵
  • Python | 繪製影像地圖(Basemap)
    Basemap簡介Basemap是Matplotlib的擴展,是具有專業標準的地圖繪製工具。Basemap適合地球科學家,特別是海洋學家和氣象學家的需求。最初編寫Basemap是用來幫助和研究氣候和天氣預報的。類似的工具還有CDAT,Python第一種用於繪製地圖投影數據。CDAT後來進化為UVCDAT。
  • 三種可視化方法,手把手教你用R繪製地圖網絡圖!
    下面這篇博客將使用R中的igraph、ggplot2或ggraph包來介紹三種在地圖上可視化網絡圖的方法。在對地理位置以及位置的連接關係進行可視化時,還可以在圖中展示一些屬性。當我們對節點(nodes)為地理位置的網絡圖進行可視化時,比較有效的做法是將這些節點繪製在地圖上並畫出它們之間的連接關係,因為這樣我們可以直接看到網絡圖中節點的地理分布及其連接關係。
  • 在Microsoft Power BI中創建地圖的10種方法
    今天,小悅想和大家簡單聊一聊「地圖」。在我們日常生活中,地圖地位已經提升的越來越高,出門聚餐、駕駛、坐車、旅行.應運而生的就是各種Map APP。作為數據分析師,我們今天不講生活地圖,要跟大家叨叨的當然是我們最關心的是:怎樣選擇合適的Power BI的可視化「地圖」。
  • 【R】如何用 R 繪製地圖
    本文主要包含三種繪製地圖的方法:繪製基礎地圖、基於空間數據格式(shapefile)繪製地圖以及如何調用百度地圖和谷歌地圖的數據來繪製地圖
  • Excel三步繪製地圖-- Excel2016篇
    大家好,今天主要介紹一下如何使用Excel繪製地圖。Excel繪製地圖主要使用PowerMap模塊。
  • 玩轉地球: 如何利用SAS繪製現代化地圖(附代碼)
    在傳統上,SAS 預設提供 MAPSSAS 庫和 PROC GMAP, PROC GPROJECT, PROC GREMOVE, GEONCODE 等若干過程步來支持地圖繪製功能。利用這些基礎數據和過程步,用戶能很容易繪製世界地圖,各大洲地圖,各國家地區地圖。
  • 【微課堂】祖先們如何繪製地圖?
    在沒有飛機、遙感數據與人造衛星的古代,「繪製地圖」看上去是一件很困難的事情;實際上,古人們的測繪方式卻非常樸素——說白了,就是田野作業,實地考察。古時的人們管地圖叫做「輿圖」,「輿」字的本意即為「車廂、車輛」,恰好概括了那時人們測繪地圖的方式,坐在車上(或騎馬、乘船、步行等)前往陌生的地方,憑藉簡單的定向設備確定位置,再將親眼偵測到的地理信息記錄下來,繪製到圖上。
  • Excel 2016 三步繪製可視化地圖
    大家好,今天主要介紹一下如何使用Excel繪製地圖。Excel繪製地圖主要使用PowerMap模塊。