158_模型_Power BI 使用 DAX + SVG 打通制作商業圖錶幾乎所有可能

一、背景

最近對 Power BI 中使用 SVG 比較感興趣,今天我們使用 DAX + SVG 複刻一下 Zebra-BI 視覺。

效果圖

Power BI 公共 web 效果:https://demo.jiaopengzi.com/pbi/158-full.html

其實這個圖錶的樣子應該很多朋友都見過,就是 Zebra BI 的視覺對象的效果;對於 Zebra BI 不是本文的重點對象,有興趣的可以去 Zebra BI 官網(www.zebrabi.com)看看。整體來說 Zebra BI 的圖錶是符合 IBCS (www.ibcs.com) 商業圖錶的標准的。

這樣的圖錶符合一個要求,也就是 IBCS 提出的 "成功理論" => "SUCCESS"

SUCCESS 理論是七個單詞首字母拼寫,也就是藏頭詩的意思,如下:

  • SAY :信息的准確傳達。
  • UNIFY :統一通用符號語言,正確使用符號。
  • CONDENSE :增加信息密度,最好一頁搞定。這點倒是符合國人的習慣,中國式報錶就能滿足。
  • CHECK :確保視覺的完整性。
  • EXPRESS :選擇適當的可視化,不要花裏胡哨。
  • SIMPLIFY :大道至簡,避免複雜混亂。
  • STRUCTURE :結構化與組織保持一致。

以上為筆者理解,在商業圖錶中,上述的規則確實比較實用,大家也可以取其精華去其糟粕的方式去理解。

二、圖錶解析

在 IBCS 商業圖錶的標准下,我們解析一下上述圖錶的幾個元素,在日常的商業報錶盡量都按照這個標准去做。

  • PY:previous year 的簡寫,錶示前一年。用灰色矩形錶示。

  • AC:actual 的簡寫,錶示當前實際的。用黑色矩形錶示。

  • PL:plan 的簡寫,錶示目標或者預算,亦可以簡寫:BU (budget)。用空心矩形錶示。

  • FC:forecast 的簡寫,錶示是預測,很多業務場景都會用到預測。用斜杠矩形錶示。

  • ΔPY:AC - PY,實際和前一年 PY 的差异值。

  • ΔPL:AC - PL ,實際和目標 PL 的差异值。

  • ΔFC:AC - FC,實際和預測 FC 的差异值。

  • ΔPY%:(AC - PY)/PY*100% ,實際和前一年 PY 的差异百分比。

  • ΔPL%:(AC - PL)/PL*100% ,實際和目標 PL 的差异百分比。

  • ΔFC%:(AC - FC)/FC*100% ,實際和目標 PL 的差异百分比。

  • 情緒顏色:紅色錶示不好,綠色錶示較好。

  • 百分比極值:紅色三角錶示序列中最小,綠色三角序列中最大。

三、報錶制作的必要 Power BI 元素

Ⅰ、日期錶,請使用我們制作的日期錶,詳見附件。

Ⅱ、Power BI 視覺對象 HTML Content 可在視覺商店下載。

Ⅲ、准備好 SVG0_AC、SVG1_PY、SVG2_PL、SVG3_FC 四個度量值的,度量值的名稱請勿更改,因為 SVG 主度量值 SVG4_htmlSVG5_image 都依賴。

四、SVG 主度量值配置

SVG 主度量值 SVG4_htmlSVG5_image 我們已經做成模板,只需要按照上述的日期錶和 SVG0_AC、SVG1_PY、SVG2_PL、SVG3_FC 四個基礎度量值按照你實際業務設定即可。

SVG4_html :在html 視覺對象 HTML Content 中使用,可以實現大圖。

SVG5_image :在 Power BI 原生視覺對象中使用,圖像只能是縮略圖。

另外在 SVG 主度量值中做了相應的配置,滿足個性化的需求。

五、報錶生成

以上配置好了,只需要把主度量值拉到視覺對象即可,同時配合切片器使用即可動態變化。

注意這裏使用的是 HTML Content 視覺對象,用的度量值是 SVG4_html

在 Power BI 原生視覺對象矩陣中,使用度量值 SVG5_image 。由於 Power BI 原生的視覺對象對圖片的大小做了限制,所以只能看縮略圖。

當然在一些輔助的迷你圖和一些輔助標識上還是足够使用了。

六、總結

1、雖然本文講的是 SVG 複刻,但並沒有具體去講 SVG 的內容;建議自行補習一下:https://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html

2、在 Power BI 原生的對象中,對 SVG 的一些元素還是有限制的,比如不能使用 use ,還有一些什麼坑留給大家自己去試試了。

3、目前筆者在 Power BI 使用較複雜的 SVG 建議使用 HTML Content ,其他視覺對象總有一些 SVG 的元素不支持,如果有更好的建議歡迎留言。

4、在前面也說過,目前 Power BI 原生視覺對象是無法實現大圖的,還是建議使用 HTML Content ,這裏需要給大家提醒的是,一般企業戶禁用三方視覺,建議聯系自己的管理員把 HTML Content 視覺對象加入到自己的組織視覺對象中。

5、DAX + SVG 生成的報錶交互相對就差了一些,有失必有得,這樣的損失是值得的,當然如果在 html 中加入一些 JS 也是可以實現的,但是這個時間成本就太高了,有這方面的研究的朋友歡迎一起交流。

6、通過上述的 DAX + SVG + HTML Content 視覺對象打通了制作平面的商業圖錶的幾乎所有可能。

附件下載

https://jiaopengzi.com/2796.html

by 焦棚子

158_模型_Power BI 使用 DAX + SVG 打通制作商業圖錶幾乎所有可能的更多相關文章

  1. .NET平臺開源項目速覽(19)Power BI神器DAX Studio

    PowerBI更新頻繁,已經有點更不上的節奏,一直在關注和學習中,基本的一些操作大概是沒問題,更重要的是注重Power Query,M函數,以及DAX的使用,這才是核心.   上個月研究了DAX的一些 ...

  2. react使用引入svg的icon;svg圖形制作

    由於手頭的icon有限,需要使用更多的圖標,就得找外援: 1.react安裝icon插件,使用插件裏已經有的圖標 https://react-icons.netlify.com/#/ React Ic ...

  3. svg可視化制作工具

    svg可視化制作工具直接ai裏面用鋼筆路徑畫好 然後右鍵建立複合路徑 最後存儲為svg即可 這樣生成的svg就帶path標簽了

  4. Power BI中DAX的動態計算方差

    我花了一點時間試圖解决一個棘手的DAX錶達式,那就是如何動態計算方差,下面我們認識一下這兩個函數: PARALLELPERIOD  和 SAMEPERIODLASTYEAR  它能實現我們想要的結果, ...

  5. 數據可視化之DAX篇(七) Power BI中用DAX生成的錶如何添加索引列?

    ​https://zhuanlan.zhihu.com/p/74732578 來源於知識星球中一個星友的問題,使用DAX在PowerBI中新建了一個錶,如何為這個錶添加索引列呢? 假如數據模型中只有一 ...

  6. 9款基於HTML5/SVG/Canvas的折線圖錶應用

    1.華麗的HTML5圖錶 可展示實時數據 HTML5在圖錶應用中也十分廣泛,比起以前的網頁圖錶,HTML5圖錶制作更便捷,功能更强大.這款HTML5圖錶插件外觀十分華麗和專業,在數據展示方面也很有優勢 ...

  7. 微軟BI 之SSRS 系列 - 實現 Excel 中圖錶結合的報錶設計

    來自群裏面討論的一個問題,EXCEL 中有類似於這樣的圖形,上面是 Chart, Chart X軸上的值正好就是下方 Table 的列頭,這個在 SSRS 中應該如何實現?   SSRS 2008.2 ...

  8. SSAS多維設計模型與報錶客戶端-Excel透視錶制作

    VS:SSAS設計多維設計模型: 數據源視圖.dsv: 數據源視圖錶,名稱命名規範:vw_錶名(事實錶_F_/維錶_D_),

  9. SVG動畫制作工具 , 從此拋弃臃腫的gif

    VG簡介 只要是程序員的你,你不得不知道svg圖片,它可以無限任意放大拉伸都不會損失畫質,就像系統字體一樣可以無限矢量放大,svg更高級是可以用來制作矢量動畫,現在各大瀏覽器和系統基本對svg已經支持 ...

  10. 5個適用於初學者的有用數據分析錶達式(DAX)函數

    數據分析錶達式(DAX)入門可能令人生畏,但是,當你了解一些基本功能後,你就可以幫助你解答許多有關數據的新見解.雖然在Power BI或Pivot Charts中創建視覺效果很容易,但我們經常希望查看 ...

隨機推薦

  1. JavaScript權威設計--JavaScript數組(簡要學習筆記九)

    1.數組的創建 如: var a=[1.1,null,"a"]; var b=[1, ,3]; //中間的那個元素是undefined var c=[ , , ] 這裏c.leng ...

  2. 【Telerik】查詢控件<telerik:RadMaskedTextBox>的使用

    在SilverLight項目中,實現模糊查詢,並將值綁定到列錶中,使用了Telerik中的<telerik:RadMaskedTextBox>控件. 要先添加命名空間的引用: xmlns: ...

  3. LeetCode(169)Majority Element and Majority Element II

    一個數組裏有一個數重複了n/2多次,找到 思路:既然這個數重複了一半以上的長度,那麼排序後,必然占據了 a[n/2]這個比特置. class Solution { public: int majorit ...

  4. 《SAS編程與數據挖掘商業案例》學習筆記之十七

    繼續讀書筆記,本次重點sas sql語句,因為sql內容多且複雜,本文僅僅介紹商業應用中經常使用的而且easy出錯的地方,內容包含:單錶操作.多錶關聯.子查詢以及merge和join的差別 1.單錶操 ...

  5. ORA-16014: 日志 1 的序列號 242 未歸檔, 沒有可用的目的地

    SQL> alter database open; *第 1 行出現錯誤:ORA-16014: 日志 1 的序列號 242 未歸檔, 沒有可用的目的地ORA-00312: 聯機日志 1 線程 1 ...

  6. XPath語法 在C#中使用XPath示例

    XPath可以快速定比特到Xml中的節點或者屬性.XPath語法很簡單,但是强大够用,它也是使用xslt的基礎知識. 示例Xml: <?xml version="1.0" en ...

  7. cocos對lua代碼加密

    1.0 cocos luacompile 用法 我用的普通的cocos2d lua,沒用quick,quick好像可以對整個資源包括圖像和音頻都加密,打包成zip.但我沒用quick.看了下luaco ...

  8. php分享二十六:讀寫日志

    一:讀寫日志注意事項: 1:fgets取出日志行後,注意用trim過濾下 2:explode(“\t", $line) 拆分後,注意判斷下個數是否正確,如果不正確,怎麼處理?   如果某一列 ...

  9. 【Oracle學習筆記-1】Win7下安裝Oracle 10g

    源程序獲取 從Oracle的官網上下載Oracle 10g: 10203_vista_w2k8_x86_production_db.zip:==>服務器(必須) 10203_vista_w2k8 ...

  10. 樹莓派與Arduino Leonardo使用NRF24L01無線模塊通信之基於RF24庫 (六) 樹莓派查詢子節點溫濕度數據

    nrl24l01每次只能發送4個字節,前面說到,第一個字節用於源節點,第二個字節用於目的節點.因此只剩下兩個字節用於溫度和濕度,一個字節只有八比特,需要錶示溫濕度的正負數,因此每個字節的第一比特錶示正負符 ...