海量層次信息可視化技術Treemaps在收入保障系統中的應用
Labs 導讀
收入保障系統,顧名思義指的是保障公司運營收入的系統,通過一系列數據稽核的手段來尋找引起收入流失的漏洞,及時糾正將收入漏洞堵上,從而來提高企業的利潤。在這個過程中,系統會產生大量的數據,通過對這些數據進行匯總和規則過濾,最終會形成量化的分析指標,以供決策者來定性地判斷是否某個稽核點產生了收入漏洞。
收入保障的分析指標往往又多又雜,常規的數據可視化手段很難滿足用戶要求,本文將介紹海量層次信息可視化技術——Treemaps,在收入保障系統中是如何展示這些指標數據的。
Part 01 、什么是Treemaps?
Treemaps是在1991年由美國Maryland大學的人機交互專家Brian Johnson和Ben Schneiderman提出的一種用來表示大規模層次信息的新方法。
其原理是首先將層次結構信息組織成樹狀結構,然后采用基于二維空間填充的技術,將顯示空間劃分為許多矩形來表示樹節點,用整個顯示空間來表示樹的根結點,其所有子樹結點矩陣置于其中,矩形的大小和樹結點的權重成正比,而且子樹結點矩形的面積之和小于等于其父結點矩形的面積。
這種方法充分利用了顯示空間的每一個象素,非常適合數據集合很大且數據有層次的情況,圖1是普通的節點連接圖,當樹的層次很深或樹的葉子結點很多時,在一屏內很難完全展示出整棵樹;圖2是Treemaps圖,能夠清晰表達每個節點之間的層次信息,非常適合1-展示稽核數據。
Part 02、 Treemaps的實現
在收入保障系統中,我們采用Squarified Treemaps方法實現收入管理鏈的可視化。Squarified Treemaps是Treemaps的一種,其基本思路是在繪制矩形時盡可能接近正方形,這種方法的屏幕空間利用率較高。
在劃分矩形時,我們采用的是遞歸的方法,每一步只考慮處于同一個層次的矩形劃分問題。在每一個層次中,劃分的步驟如下:
Step1:建立一個父結點矩形以及相對應的子結點權重序列;
Step2:從一條邊方向開始對父結點進行線性劃分,依次將子結點矩形放置到父結點矩形中,每放入一個子結點則重新劃分一次;
Step3:比較新的劃分結果和劃分前的狀態,如果新的劃分結果中所有已經插入的子結點的平均寬高比大于劃分前的狀態,則撤銷這一次劃分,并且認為已經被子節點矩形占用的空間達到了一個有效的劃分結果,令它保持不變,而將新加入的子結點在父結點矩形的剩余區域內重復上述過程,直到所有的子結點都已經放入了父結點矩形。反之,則保持新的劃分結果,然后繼續加入新的子結點矩形,并且重復上述過程。
算法描述如下:
圖片
其中,雖然R中的一個項在增加,其余的在減少,
其中
,
分別為R中最大和最小項。
Part 03、 Treemaps在收入保障中的應用
整個收入管理鏈包含的流程非常繁雜,大體上包括合同簽約環節、服務交付環節,營收環節,收入確認環節和擴展環節。
Treemaps中的第一級矩形代表了上述環節,每個矩形的面積則代表了該環節在整個收入管理鏈中影響收入保障成熟度的權重。
Treemaps中的第二級矩形則代表某個收入管理環節中的所有稽核點,矩形的面積與在某環節所占權重成正比。
除了矩形的面積之外,還有一個重要的可視化特征就是矩形的顏色。矩形的顏色是按綠色到紅色進行均勻分布的,矩形的顏色越綠就說明這個環節的收入流失越少,收入保障的成熟度越高。相反,矩形的顏色越紅就表示該環節的收入泄漏越嚴重,收入保障的成熟度越低。在每個環節內,我們又可以很容易通過顏色的紅綠程度來分辨哪些稽核點在影響這個該環節,再進一步可以觀察這些稽核點下的分析指標的矩形面積大小和顏色紅綠程度,最終分析出是什么原因導致收入泄漏。