用于可视化图形中随时间变化的技术

Oll*_*ass 10 time visualization graph-layout

我希望显示一个图表(网络图,而不是图表)并显示其随时间的变化.是否有标准或最佳方式来执行此操作,或任何类型的"网络差异"工具?

我正在寻找所涉及的总体布局决策的概述,即一系列选项和权衡取舍,以及存在这些决策的最佳实践指南.

pet*_*ter 2

哇。这不是一个简单的问题!我很好奇是否有人能为您提供一些权威资源。

从设计的角度来看,我没有找到任何记录的标准或最佳实践,也不知道有任何专门用于确定和显示更改的工具,但我有一些想法。

首先,一些技术说明。有GraphML,您可以使用(和扩展)它以标准格式表示图形,并且有一些可用的解析器,并且它可以与Prefuse以及可能的其他显示库一起使用。不过,它只是 XML——没什么特别的。通过比较两个 GraphML 文件来创建“差异”应该非常简单。

真正有趣的部分是如何向用户传达差异。

在所有情况下,您都应该有一个用于添加或删除的节点和边的视觉指示器。您可以使用颜色,将现有节点显示为中性(例如灰色),将新节点显示为绿色,将删除的节点显示为红色。有很多选择。

您可能会发现这张幻灯片很有趣。

这可能是显而易见的,但是,随着时间的推移,节点的移动不应超过适应图的新状态所需的程度 - 布局应该不断发展,而不是从头开始为每个状态。这对于比较各州至关重要。

  1. 并排比较之前/之后。并排呈现同一图表的前后快照。如果您的图表非常大且复杂,并排布局可能不切实际。您可以尝试将一张图叠加在另一张图上,尽管这可能会让人迷失方向。

  2. 并排系列比较。又称小倍数。与上面相同,但显示尽可能多的有用时间点。就所需空间和难度而言,甚至比之前和之后更具限制性。

  3. 对单个图表进行动画处理。我认为最直观的方法是平滑地动画化图形变化,尽管如果幻灯片之间的变化不太剧烈,则断断续续的幻灯片也可以工作。

显示详细信息。如果有用,您可以通过几种不同的方式阐明更改事件的详细信息。

  1. 在图形节点上显示标签(如果一次显示太多,则可以是交互式的)

  2. 在侧边栏/图例中显示列表。如果阅读变化的进展是有用的,那就太好了,但很难与视觉联系起来。

  3. 显示时间线而不是列表。这比简单的列表更好地显示了事件的“真实”进展,简单的列表给人的印象是所有事件随着时间的推移均匀分布。

您实际选择做什么在很大程度上取决于数据集的性质和您的目标。一个由几十个节点和一些变化组成的简单图表与一个巨大的网络(例如夜空中的每个星座)相比是一个截然不同的挑战!