如果谈到层次结构数据可视化只想到树形图,说到网络结构数据只想到力导向图~~,那么这篇文章也许能有一些帮助。按照图的数据结构,我们可以将图可视化分为2大类: 层次数据的可视化和网络数据的可视化,本文主要介绍层次数据可视化。

层次结构可以被抽象为树(Tree)结构, 树是图的一个特例,是只存在父节点和子节点之间连接的图。层次数据可视化的要点是对数据中层次关系的有效刻画,有2中主要的可视化方式: “节点-链接”和”空间填充”。

treevis.net: 德国的Hans-Jörg Schulz博士创建的,对层次数据可视化进行了分类总结。他们将层次数据可视化按照“空间维度”、“表现形式”、“对齐方式”这3个维度进行分类。
日常ppt图绘制.001.jpeg

1. 节点-链接(node-link)

将单个个体绘制成一个节点,节点之间的连线表示个体之间的层次关系。

代表: 空间树、圆锥树、径向树、双曲树……
优点:直观清晰,擅长表示承接的层次关系。
缺点:当节点数目增加,特别是树的广度和深度相差较大时,该方法的可读性较差,大量节点聚集在屏幕的局部范围,屏幕空间的利用率底下。

1.1 原则

清晰有效地实现node-link方法需要考虑到如下几点:

  • 节点位置的空间顺序和层次关系一致。
  • 减少连线之间的交叉。
  • 减少连线的总长度。
  • 合适的长宽比,优化空间利用率(数据-墨水原则)。

1.2 布局方法

1.2.1 正交布局

特征: 节点在放置的时候按照水平或垂直对齐。
优点:与坐标轴一致的、比较规则的布局与人们的视觉识别习惯吻合。
缺点:当大型的层次结构,特别是广度特别大的层次结构,会导致不合理的长宽比,造成数据显示空间不足和屏幕空间浪费的问题。

screencapture-homes-cs-washington-edu-jheer-files-zoo-ex-hierarchies-tree-html-2019-10-31-23_06_18.png

节点-链接正交布局的局限性(上图展示了Flare软件包的子目录结构)

1.2.2 径向布局

特征: 根节点位于圆心,不同层次的节点被放置在半径不同的同心圆上。
优点:整个可视化布局呈圆形,能更好地利用空间。
缺点:在径向树中,圆周的大小随层次深度的增加而线性增长,而树节点则往往呈几何级增长。对于大型的层次结构,树的底部空间不够,会导致节点互相重叠。

image.png
径向树(Radial Tree)

1.2.3 环状径向树

径向树的一种变体,将每一棵树递归地采用径向布局形成环状结构。优点是子树的结构更加直观,缺点是随着层次的深入,子节点的空间占位逐渐变小。

image.png

环状径向树

1.2.4 圆锥树(Cone Tree)

一种在三维空间可视化层次数据的技术,结合了正交布局和径向布局两种思想。

image.png

圆锥树

1.2.5 双曲树(Hyperbolic Tree)

双曲树的拓扑结构和常规径向树一致,但布局空间不是欧几里得空间(Euclidean space), 而是双曲空间(hyperbolic space)。 在双曲空间里面,圆周随半径的增加呈现出几何级数的增长。

image.png

双曲树
**

2. 空间填充(space-filling)

用空间中的区域来表示数据中的个体,并用外侧区域对内层区域的包围来表示层次关系。

代表: 树图(TreeMap)、旭日图(Sunburst)……
优点:擅长表示包含与从属的关系,能更高效地利用屏幕空间,可呈现更多的数据。
缺点:表达的数据层次信息不如node-link方法清晰。

2.1 树图(Tree Map)

用矩形表示层次结构里的节点,父子节点之间的层次关系用矩形之间的相互嵌套隐喻表示。

优点:可以充分利用所有的屏幕空间。
缺点:视觉效果不如node-link方法清晰。当层次深度过大时,用户解读较困难。

image.png

2.2 旭日图(Sunburst)

中心的圆代表根节点,各个层次用同心圆表示。

优点:相比树图,旭日图可以显示出中间层次的节点,更容易分辨层次结构。比node-link方法的空间利用率要好。
缺点:当树结构不平衡的时候,会导致某一部分的扇形向外延伸很长,造成不合理的长宽比。

image.png

2.3 Voronoi TreeMap

采用任意多边形来取代上述方法中的矩形空间。

image.png

2.4 Bubble TreeMap

每个节点都使用嵌套轮廓圆弧进行可视化。
image.png

3. 其他方法

3.1 相邻层次图(Adjacency diagram)

node-link方法能清晰直观地显示数据层次结构,space-filling方法能高效利用屏幕空间。相邻层次图则是2者的结合。
image.png

3.2 弹性层次图

中间层次的节点由树图法来表示。

image.png

3.3 混合式旭日图

旭日图的一种变体。
image.png
混合式旭日图法

参考