在有限的工作時間中梅誓,就靠此文來搞定地圖可視化了沽讹。
以地圖的形式進行可視化是一個很重要的領域科汗,例如各種省份本來就表現(xiàn)成地圖藻烤,還有籃球場,場館等自定義的形式头滔,其共同點都是:以二維空間打底怖亭,在上面看數(shù)據(jù)的情形。
為什么要實現(xiàn)地圖可視化
關于可視化的原理坤检,請參考一篇非常重要的文章:真正的商業(yè)圖表可視化之道-布道篇兴猩,這里揭示了一個重要的原理:
為了更好的傳遞信息,需要充分利用人類的左腦和右腦的處理器能力早歇。
人類左腦是:CPU(單線程)倾芝,負責處理邏輯指令,包括:文字箭跳,聲音晨另,邏輯等;
人類右腦是:GPU(單線程)谱姓,負責處理圖形指令借尿,包括:圖形,圖像屉来,照片路翻,空間想象等。
所以奶躯,結論來了:其實地圖可視化從本質(zhì)上一樣可以轉化成按類分布的條子圖帚桩,而條子圖并為充分利用右腦的空間處理能力和記憶能力亿驾。為了讓人可以幾乎不用左腦的做出第一反應嘹黔,那用真實地圖表示地點確實比用分類方式可以更好的調(diào)用人的右腦資源的。因此,可以做地圖可視化的儡蔓,應該盡可能考慮到這一點郭蕉,讓用戶享受右腦GPU的計算能力而節(jié)省左腦CPU。
實現(xiàn)地圖可視化的期望
先從PowerBI的一個基礎地圖來說起:
這個地圖確實直觀的反應了空間位置及信息喂江,如:黑龍江的銷售額召锈。
但這個地圖有幾個不完美的地方:
- 沒有直接顯示各個地區(qū)的數(shù)值,需要移動鼠標获询,交互不完美涨岁。
- 除了中國地圖以外的信息都是無用的,存在信息榮譽吉嚣,不完美梢薪。
- BING地圖需要網(wǎng)絡以及加載時間并顯示路線等,交互不完美尝哆。
當然這里面最大的痛在于:沒有直接顯示各個地區(qū)的數(shù)值秉撇。
那么有沒有完美的解決方案呢?
如果沒有完美的解決方案秋泄,在不同的場合有沒有更合適的解決方案呢琐馆?
這就是我們要研究的主題。
接下來恒序,我們分別來剖析一下不同的一些方案及缺陷以及彌補措施瘦麸,可以供大家參考。
PowerBI默認地圖
首先就是對于上面的這個地圖奸焙,我們來設計對于最大痛點的補救措施瞎暑,補救的效果如下:
優(yōu)勢:可以多角度分層級顯示度量值。
缺陷:
1与帆、在線BING地圖需要識別
2了赌、無法顯示標簽
3、地區(qū)其他區(qū)域并非必要
補救:
自定義列顯示標簽玄糟。
補救的具體方式是:
新建自定義列:
省份銷售額 =
FORMAT(
CALCULATE(
[訂單銷售額] ,
FILTER( ALL( 'tb地區(qū)' ) , 'tb地區(qū)'[省/自治區(qū)] = EARLIER( 'tb地區(qū)'[省/自治區(qū)] ) )
) / 1000 , "0.0"
) & "K"
然后將這列的數(shù)據(jù)分類設置為:
這樣就可以騙過PowerBI的解析器勿她,以為這個文本是個省份,然后我們把這個省份放到實際的省份下面阵翎,并鉆取下去逢并,那PowerBI的解析器就以為這是這個省下面的城市,并顯示出來郭卫,如下:
這里用的技巧是去欺騙PowerBI解釋器砍聊,大家看到了,有時候善意的欺騙能得到良好的效果贰军。
這種方式在一些場合還是很好的玻蝌,因為這個地圖可以顯示著色的氣泡,能反映很多信息。
PowerBI著色地圖
與PowerBI默認地圖幾乎一樣俯树,PowerBI著色地圖如下:
優(yōu)勢:可以多色彩顯示度量值大小帘腹。
缺點:
1、在線BING地圖需要識別许饿。
2阳欲、無法顯示標簽。
彌補方式:無陋率。
可惜的是球化,這種地圖的痛點依然是無法直接顯示所有的數(shù)值,而且我沒有發(fā)現(xiàn)對它的彌補方案瓦糟。
PowerBI形狀地圖
PowerBI提供了一種清爽的地圖表示方式赊窥,叫形狀地圖,如下:
除了地圖沒有額外的榮譽信息狸页,或者看到它更清爽的樣子:
這也是大家投票多數(shù)認為比較好的形式:同色系顏色深淺的形狀地圖來實現(xiàn)地圖可視化锨能。而且在回復中看到了很專業(yè)的評價:同色系顏色的深淺相對于多種顏色而言更容易被大腦處理。問題又來了芍耘,這里沒顯示數(shù)字啊址遇,所有的數(shù)字都沒有顯示,而且遺憾的是斋竞,PowerBI沒有提供這個設置啊倔约,我們做了簡單的補救是這樣的:
我們在它的旁邊設計了放大鏡區(qū)域以及TOP5的區(qū)域。這能讓人抓住重點坝初,也是一種可選的補救方式浸剩,而用戶在點擊色塊的時候,放大鏡會動態(tài)聚焦到該區(qū)域并顯示數(shù)值也是一種不錯的交互體驗鳄袍。實現(xiàn)方法很簡單绢要,就是做兩個地圖,用第一個來篩選第二個拗小,并做一個度量值顯示當前的額數(shù)值即可重罪。
好的,如果您堅持說這種方式不完美哀九,因為根本沒有直接顯示全部剿配,我也承認,我們只好另想辦法了阅束。
自定義地圖
自定義地圖就完全是由自己來實現(xiàn)某種地圖了呼胚,整個思路一下子打開了,它不僅僅適用于地理位置的地圖息裸,適用于任何地圖以及你想強迫表示成地圖的內(nèi)容蝇更,如下:
當然它也可以顯示成這樣:
所以琢融,它可以小清新的顯示出全部標簽。
這是使用這個自定義地圖實現(xiàn):
地址為:https://okviz.com/synoptic-panel/ 他們的標志性作品相信很多人已經(jīng)看過:
其實簿寂,我們還可以做的自定義地圖例如:
相信您已經(jīng)能自行腦補出您能做的地圖了。
于是我用Excel快速制作了一個丑陋的Demo來看看:
這里的塊塊都可以可以點擊交互的宿亡,可以腦補出用Excel的表格作為表格框架可以做出很多圖形常遂。
關于這個可視化元素的詳細使用可以參考官方文檔以及我會在后續(xù)的實際案例中進一步分享。
返回我們的話題挽荠,地圖可視化克胳,這里我們就可以添加類別標簽和數(shù)值了。而且它有很多自行一的選項:
這里特地圈出了 Enchose in area ,你能猜到它表示強制讓數(shù)據(jù)標簽顯示在自己的區(qū)域里圈匆,要不就別顯示漠另。果然是SQLBI.com的作品,考慮得夠細致跃赚。
ArcGIS Maps for PowerBI
很多人都看到了這個可視化是內(nèi)置在PowerBI里的笆搓,也許您沒用成,那我簡單說明下其中的一些坑纬傲,先來看效果:
先說它的強大之處满败,可以按各種模式顯示,可以標記點叹括,以及圈選算墨,還可以按半徑和車程來設置范圍,例如:
這里以中國江蘇南通市為標記點設置了2小時的車程距離汁雷。這確實在某些特定的場合是很有意義的净嘀。
因為這可以說是一個國際通用的終極地圖解決方案,所以在中國本地化方面就存在很多不易用的障礙了侠讯,包括但不限于:
- 高級的要收費
- 地名不識別中文挖藏,國際上看中國的城市,有英文名的用英文名厢漩,沒有的用拼音熬苍,所以您得知道哪些城市用英文,哪些用拼音袁翁,另外柴底,ShanXi是表示山西還是陜西,因此我們要處理很多的細節(jié)問題
- 網(wǎng)絡加載延遲
所以從實際的使用角度粱胜,除了有設置車程柄驻,圈選等其他地圖根本不具備的硬性要求,暫時不會考慮使用這個神器焙压,對付它需要更多的耐心和處理好所有的細節(jié)問題鸿脓,有興趣的伙伴可以自己探索抑钟。
多級省份,市區(qū)地圖怎么辦
有很多伙伴問到過顯示一個市的所有縣之類的問題野哭,其實我已經(jīng)揭示了一個終極的好用方案在塔,就是自定義地圖。只要您有地圖的樣子拨黔,就可以制作自定義的區(qū)塊蛔溃,然后建立區(qū)塊與名稱的對應來實現(xiàn)效果,大家注意看:
這個中國地圖是我自行摳圖生成而非json數(shù)據(jù)文件之類的,所以,所有的省函喉,市,縣都可以這樣操作麸塞,而且這個過程SQLBI.com已經(jīng)提供了工具,是一項不難而有有意思的工作涧衙,不妨一試哪工。
當然,如果是通用的一些省份弧哎,還是可以使用形狀地圖并加載特定的數(shù)據(jù)正勒,例如:
這里使用anhui.topojson的數(shù)據(jù)。設置如下:
值得一提的是傻铣,topojson和json地圖數(shù)據(jù)的格式定義上是有區(qū)別的章贞,但幸好是可以轉換的,所以這些個坑都可以走過去的非洲。另外鸭限,之前PowerBI極客高飛老師也發(fā)布過類似文章,大家可以聯(lián)合參考下两踏。另外败京,這里提供下資源的下載方式:鏈接:https://pan.baidu.com/s/1jJ4YEPK 密碼:t0ef。你直接可以使用這些資源來制作形狀地圖梦染。
總結
地圖可視化在數(shù)據(jù)可視化中擁有重要的一席之地赡麦,而此文基本解決了我處理大部分工作中涉及到的問題,如果出現(xiàn)特性的復雜問題帕识,再針對它特別處理泛粹。尤其值得重復的是:自定義地圖,它真的可以做很多事肮疗,靠的是想象力晶姊。