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中的第二级矩形则代表某个收入管理环节中的所有稽核点,矩形的面积与在某环节所占权重成正比。
除了矩形的面积之外,还有一个重要的可视化特征就是矩形的颜色。矩形的颜色是按绿色到红色进行均匀分布的,矩形的颜色越绿就说明这个环节的收入流失越少,收入保障的成熟度越高。相反,矩形的颜色越红就表示该环节的收入泄漏越严重,收入保障的成熟度越低。在每个环节内,我们又可以很容易通过颜色的红绿程度来分辨哪些稽核点在影响这个该环节,再进一步可以观察这些稽核点下的分析指标的矩形面积大小和颜色红绿程度,最终分析出是什么原因导致收入泄漏。