什么是层次数据

层次数据是一种常见的数据类型,着重表达个体之间的层次关系。这种关系主要表为两类,包含和从属,现实世界中它无处不在。例如,地球有七大洲,每个洲包含若行得家面年个国家又划分为若干省市。在社会组织或者机构里,同样存在着分层的从属关系。
2011.06.27_organizational_charts.png
图3.1 各计算机公司的组织结构图
我们通过分类来理解事物,层次结构是我们认知行为的基础。在人们组织和认知信息的时候,层次结构也常常被用到,例如计算机文件系统中的文件和目录。当人们进进行记忆和思维发散时,层次结构也能发挥很大的辅助作用。
01155413v1gl.png
图3.2 思维导图
除了包含和从属关系之外,层次结构也可以表示逻辑上的承接关系。比如机器学习中的决策数,每个节点就是一个问题,不同答案对应不同分支,连接到下一层的子节点,最底层的叶子节点通常对应不同决策。

层次数据可视化

各类层次结构数据可视化是一个长期的研究话题,随着新的层次数据和可视化需求的出现,层次数据可视化的创新也层出不穷,层次数据可视化的要点是对数据中层次关系的有效刻画,可视化采用不同的视觉符号来表示不同的类型关系,这决定了层次 数据可视化的两种 主要类别。

节点-链接法

节点链接法的核心问题是如何在屏幕上放置节点 ,以及如何绘制节点之间的链接关系。节点放置取决于具体应用需求,选择什么样的形状或图示表示节点则通常取决于节点所表现的内容,另外,边也是多样的。一般需要做如下考虑。

  • 节点位置的空间顺序和层次关系一致。
  • 减少连线之间的交叉。
  • 减少连线总长度。
  • 可视化应该有一个合适的长宽比,以便优化空间利用。

这些要求有时相互冲突,一个好的节点-链接布局算法要满足尽量多的要求,且不同的应用侧重于不同的布局要求。纵横轴布局算法最简单的方法是在二维平面上,沿着某个轴扩充或缩进子节点,同一层次的节点则沿另一个轴展开或收取,除纵横轴布局之外还有很多布局,例如正交布局、经向布局等。
屏幕快照 2019-10-26 上午10.06.37.png
图3.3 基于缩进法的层次结构可视化, 图片来源(A Tour Through the Visualization Zoo

空间填充法

由Johnson和Schneiderman在20世纪90年代初发明的树图(Treemap)从空间填充的角度实现层次数据的可视化。树图法采用矩形表示层次结构里的节点,父子节点之间的层次关系用矩阵之间的相互嵌套隐喻来表达。此方法可以充分利用所有的屏幕空间。
树图可视化的一个核心问题是在递归地分割空间时采用分割方法分割得到的矩形树图视觉质量通常通过矩形的长宽比来衡量,当输入发生变化时,则需要通过另一个质量标准对生成的树图进行度量-树的稳定性。
屏幕快照 2019-10-26 上午10.33.16.png
图3.4 常见的6种空间划方法生成的树图效果