一.簡述
業務人員常常希望以可視化的方式對數據進行切片,然而PowerBI自帶的可視化控制項往往難以滿足需求。比如當你要分析電影院各個座位的銷售數據時,普通的柱狀圖難以體現出相鄰座位之間的數據關係,你更需要的是用影院座點陣圖直接展示出數據,並點擊不同的座位做切片。或者,你希望有一張上海區劃圖來研究上海市各區的房價。類似於如下的效果:
事實上,實現這個效果,只需要簡單幾步。
二.基本過程
首先進入以下網站:
你可以把自己的圖片拖入編輯器中,也可以導入網站提供的圖形樣板:
編輯完成後,點擊"EXPORT TO POWER BI",下載後得到一個SVG圖像文件。用文本編輯器打開它:
(SVG是一種矢量圖形格式,它有兩個重要特性:1.任意放大收縮而不會影響畫質 2.其圖像可以通過文本編輯器進行編輯)
藍色方框內的id就是代表每個店鋪的圖形,為了讓點擊每個圖形時顯示對應店鋪的數據,或者讓各個店鋪圖形的顏色深淺來表示數據大小,就需要讓SVG裡面的id和主表數據的id進行匹配。你可以嘗試在Excel用randbetween()生成一個測試表並導入到PowerBI:
導入可視化控制項Synoptic Panel,然後導入剛剛下載的SVG圖片:
這樣就完成了自定義圖像切片:
此外,該控制項還可以支持多個SVG圖像的切換,如下:
三.使用遠程鏈接訪問SVG圖片
除了從本地導入SVG,我們也可以使用遠程鏈接來訪問SVG,特別是當報表需要多人共享時。出於本案例需要,我在Github上傳了我此前下載過的世界主要國家或地區的地圖,以及自製的廣東省地圖共30張,你可以點擊這裡下載它們或複製鏈接。
更簡單地,你可以點此下載本案例Excel表格,然後複製如下代碼到你的表格來創建計算列以實現這種效果:
Map URL = "https://raw.githubusercontent.com/hdiiasa/SvgMap-for-PowerBI/master/"& SUBSTITUTE(Test[Country]," ","")& ".svg" --使用SUBSTITUTE是因為部分國家或地區的全稱含有空格,而網址中的全稱需要避免空格轉換為「20%」
1.製作迷你圖
(註:關於迷你圖製作,需要對SVG編碼有一定了解,點此查閱相關教程)
2.製作SVG調色板
通過修改SVG圖像的顏色編碼可以改變圖像顏色,SVG使用16進位編碼,但調色通常使用RGB值來調節,因此導入RGB顏色轉換表,根據所選的RGB值轉換成對應的16進位顏色編碼,將顏色編碼作為變數寫入SVG圖像的公式中,即可達到如下效果:
<附1>如果要在PowerBI中嵌入動畫,則當使用GIF格式文件
(只需要將對應GIF鏈接識別為圖像URL即可)
<附2>PowerBI拓展閱讀
在多對一關係中正確計算數據
用DAX強化圖表交互能力
新老客自動分類與客戶復購率的計算
用DAX實現二八法則(帕累托Pareto)分析
計算不同時間新客戶開發數量
DAX虛擬連接函數TREATAS()用法介紹
用DAX找出流失客戶