课程来源:本文根据北京大学公开课《数据可视化》(共63讲)的学习笔记整理而成。该课程由北京大学智能学院袁晓如研究员主讲,课程涵盖数据可视化引论、数据抽象与编码、交互设计、各类数据(表格、高维、层次、图、时变、地理空间)的可视化方法等内容。课程链接:【公开课】北京大学:数据可视化(共63讲)
一、引言:图可视化的核心挑战
图(Graph)由节点(Node)和边(Edge)构成,广泛用于社交网络、交通网络、生物信息学等场景。然而,图可视化面临两大根本性的矛盾:
| 挑战 | 描述 | 影响 |
|---|---|---|
| 节点布局 | 结构上相近的节点应当在视觉上也靠近,以便观察聚类关系 | 需要平衡局部邻域与全局结构 |
| 边可视化 | 边的数量通常远多于节点(如完全图),每条边占据大量屏幕空间 | 造成视觉混乱、交叉重叠,严重降低可读性 |
针对这两个问题,主流的解决方案是:力导向布局负责节点定位,边捆绑技术负责处理边过多的问题,二者常常结合使用。
二、力导向布局(Force-Directed Layout)
2.1 物理模拟的基本思想与工程调整
力导向布局的基本思路源于一个直观的物理隐喻:将图的顶点想象为钢环,将边想象为弹簧。将这些钢环放置在初始位置后释放,弹簧的拉力会驱动整个系统运动,最终达到能量最小的平衡状态。在这一过程中,弹簧的弹力决定了相邻节点的靠近程度。
然而,在实际工程实现中,直接使用胡克定律(线性弹簧)会带来一个问题:当两个顶点相距较远时,线性弹簧产生的拉力过强,导致节点在布局初期剧烈震荡,难以收敛。因此,研究者提出了两个关键的工程调整:
(1)对数强度弹簧(Logarithmic Spring)
弹簧的弹力不再与伸长量成正比,而是采用对数形式:
其中:
d 为弹簧的当前长度(即两个顶点之间的像素距离);
和
为常数。
这一设计的优点在于:
当 d=
时,弹簧力为零,此时弹簧处于自然长度,节点达到理想间距;
当 d 较大时,对数函数的增长速度远慢于线性函数,避免了远距离节点之间的过度吸引,使得布局过程更加平稳。
(2)非相邻节点之间的斥力(Repulsion)
为了有效避免节点重叠,还需要让所有非相邻的节点对之间相互排斥。合适的斥力形式为平方反比定律:
其中:
d 为两个顶点之间的距离;
为常数。
这种斥力随距离的增大而迅速衰减,使得邻近节点之间保持足够的间距,而相距较远的节点则几乎不受影响,符合视觉布局的直观需求。
上述物理系统通过迭代模拟(每次计算合力并移动节点)来逐步逼近稳定状态。不同学者提出的具体模型(如后续介绍的FR模型和KK模型)在力的具体计算公式上略有差异,但都遵循了这一基本框架。
2.2 两种经典力导向模型的数学表达
在力导向布局的发展历程中,不同学者提出了各具特色的模型。这些模型的常数各有不同,导致结果的疏密程度存在差异,但最终都能得到有效的布局方案。以下两种是学术界最常用的经典模型。
(1)Fruchterman-Reingold 模型(1991)
FR 模型是最广泛使用的力导向算法之一,其核心思想是弹簧引力 + 电荷斥力。合力的计算公式如下:
其中:
第一项为斥力(Repulsion):所有节点对之间相互排斥,防止重叠;
第二项为引力(Attraction/Spring):仅作用于有边相连的节点对,使相邻节点靠近;
d(i,j) 表示节点 i 与 j 之间的像素距离(欧氏距离);
kk 为最优距离常数,控制布局的整体疏密程度,其计算公式为:
其中 A 为画布面积,n 为节点总数。该常数使得节点在画布上均匀分布。
特点:
引力呈线性或平方增长,斥力随距离增大而衰减;
通过调节 k值可以改变布局的松散程度;
距离度量采用显示空间的像素距离。
(2)Kamada-Kawai 模型(1989)
KK 模型采用了不同的思路,它基于图拓扑距离来定义节点的"理想位置"。其能量函数(目标函数)为:
其中:
d(i,j)d(i,j) 表示节点 ii 与 jj 之间的像素距离(当前布局中的欧氏距离);
p(i,j)p(i,j) 表示节点 ii 与 jj 之间的图拓扑距离(即最短路径步长);
该函数衡量的是当前布局距离与"理想距离"之间的偏差,通过最小化该能量函数来获得布局。
特点:
直接使用最短路径(Shortest path)作为理想距离的参考;
使得拓扑上相近的节点在视觉空间中也保持相近;
收敛速度相对较快,但总体计算复杂度为 O(
)。
两种模型的核心区别
| 对比维度 | Fruchterman-Reingold (1991) | Kamada-Kawai (1989) |
|---|---|---|
| 力的来源 | 弹簧引力 + 电荷斥力 | 基于理想距离的弹簧模型(无显式斥力) |
| 距离度量 | 像素距离(欧氏空间) | 像素距离 + 图拓扑距离(最短路径) |
| 核心参数 | 最优距离常数 k | 理想距离 p(i,j) |
| 计算复杂度 | O(N2) 每轮迭代 | O(N3) 总体 |
| 适用场景 | 通用,中小型图 | 需要体现拓扑结构时效果更佳 |
关于"像素距离"与"图拓扑距离"的补充说明
在实际应用中,计算节点之间的距离有时直接使用屏幕上的像素距离(欧氏距离),有时也使用节点在图拓扑中的距离(即最短路径步长)来做相应的计算。两者可以结合使用——例如在 KK 模型中,像素距离用于计算当前布局误差,而图拓扑距离用于定义理想目标,二者共同决定了节点的移动方向与幅度。
2.3 几种经典算法对比
| 算法 | 核心思想 | 时间复杂度 | 适用场景 |
|---|---|---|---|
| Fruchterman-Reingold (FR) | 模拟退火式迭代,弹簧模型+电荷斥力 | O(N²) 每轮 | 中小型图(节点数<1000) |
| Kamada-Kawai (KK) | 基于图拓扑距离的最小化弹簧模型 | O(N³) 总体 | 收敛较快,但计算量大 |
| 多级力导向 | 先粗化图,布局后再细化 | O(N log N) 近似 | 大规模图的近似布局 |
2.4 距离度量的两种方式
在力导向布局中,距离的计算有两种不同的维度:
像素距离(欧氏空间):直接用于计算力的大小,决定节点在显示空间中的最终位置。
图拓扑距离(最短路径步长):用于定义节点间的"理想距离",使得拓扑上相近的节点在视觉空间中也保持相近(如KK算法)。
2.5 参数调节与适用规模
引力/斥力常数:调节这两个常数可以影响最终布局的疏密程度——增大斥力常数会使节点分布更加分散。
迭代次数:通常需要几十到几百轮迭代才能收敛。
适用规模:传统的力导向布局通常适用于节点数在1000以内的图,超过此规模需要借助近似算法或GPU加速。
三、边捆绑技术(Edge Bundling)
3.1 为什么需要边捆绑?
当图中的边数量远远超过节点数量时(如航线图、神经网络连接图),即使节点布局已经足够合理,大量的边仍然会形成"毛线团"效应,造成严重的视觉拥堵和线条交错。边捆绑技术的核心思想是:将具有相似起点和终点的边合并成束,减少屏幕占用和交叉,从而提升人对节点关系以及边关系的识别能力。
3.2 边捆绑的工作原理
以层次化边捆绑为例,其基本流程如下:
离散化:将每条边均匀采样为若干控制点(折线或曲线)。
构建层次结构:通常基于节点的聚类树(如根据拓扑距离构造的层次树)。
吸引与聚集:在每一层中,计算边控制点之间的相似性(基于位置或方向),让相似的边相互吸引并向中间靠拢。
迭代平滑:最终形成平滑的束状曲线。
另一种流行的方法是力导向边捆绑(Force-Directed Edge Bundling, FDEB):
将边上的离散点视为可移动的粒子;
相邻边上的对应点之间增加吸引力;
同一边上的点保持原有形状的弹性约束;
通过物理模拟使边束自然聚合。
3.3 算法流程概括
text
1. 将每条边均匀采样为若干段(如10段),得到控制点网格。 2. 对每一对边,计算它们对应段之间的方向与位置相似度。 3. 若相似度高于阈值,在对应点之间施加吸引力(类似于力导向的思想)。 4. 同时添加平滑约束,避免折线过于尖锐。 5. 迭代优化,直到束状结构稳定。
3.4 参数调整
捆绑强度(Bundling Strength):控制吸引力的权重——越强则束越紧,但可能扭曲边的原始路径。
细分数量:分段越多,允许的弯曲越精细,但计算量也随之增大。
相似度阈值:决定哪些边会被捆绑在一起,影响聚类的粒度。
3.5 典型应用场景
边捆绑技术特别适用于节点位置固定的场景,例如:
机场航线图
地理地图上的城市间连接
生物网络(基因调控网络)
软件依赖图
社交网络
在这些场景中,节点无法移动,只能通过边捆绑来优化视觉效果。
3.6 效果评价
优势:
显著降低视觉杂乱度(边交叉点减少)
保留全局结构,主要路径仍然可辨识
局限性:
参数敏感,需要结合实际场景灵活调整
可能掩盖个别异常边或细节信息
通常需要配合交互(如悬停高亮)来弥补细节损失
四、图可视化的综合评价
| 技术 | 优势 | 局限性 |
|---|---|---|
| 力导向布局 | 直观揭示聚类结构和节点中心性;算法成熟,易于实现 | 计算量大;对大规模图不友好;可能陷入局部最优 |
| 边捆绑 | 大幅提升边的可读性;适合节点位置固定的场景 | 参数敏感;可能扭曲边的真实轨迹;需要交互辅助 |
| 两者结合 | 先布局后捆绑,兼顾节点聚类和边的清晰度 | 流程复杂,调参需要一定经验 |
五、延伸:时间序列数据可视化
课程的最后部分涉及了时间序列数据的可视化。时间序列是可视化领域中非常普遍且核心的数据类型,常见应用包括:
太阳黑子周期性观测
体育赛事数据分析(如NBA数据可视化)
病人服药记录
人工智能领域研究趋势分析
虽然时间序列与图布局没有直接关系,但在动态图的场景中,力导向布局需要随时间轴平滑过渡,边捆绑也需要考虑时序一致性——这是当前图可视化研究的一个热点方向。
六、总结
本文梳理了图可视化中两个核心技术——力导向布局和边捆绑技术的基本原理、经典算法和适用场景。力导向布局通过物理模拟解决节点的合理排布问题,而边捆绑技术则通过对边的聚合来缓解视觉拥堵。两者相辅相成,共同构成了现代图可视化的基础工具箱。
值得注意的是,这两项技术都涉及大量的参数调节,实际应用中需要根据具体数据和场景灵活调整。随着图数据规模的不断增大(如社交网络、知识图谱等),如何在大规模场景下高效地实现力导向布局和边捆绑,仍然是可视化领域持续关注的研究方向。
笔记整理自公开课内容,如有不当之处,欢迎指正。
课程来源
本文根据北京大学公开课《数据可视化》(共63讲)的学习笔记整理而成,课程链接 :
【公开课】北京大学:数据可视化