2.8 交互式可视化
可视化之所以被认为是可交互的,是因为它必须满足两个标准:
人为输入:某些信息视觉呈现方面的控制必须可为人所用
响应时间:人为的改变必须及时的纳入可视化
当有大量数据进行可视化处理时,即便用现在的技术也很不容易,有时甚至不可能实现;因此,“交互式可视化”通常被应用到系统中。该系统在完成输入的几秒内就可以向用户提供反馈。很多交互式可视化系统支持一种类导航,类似于穿越物质世界的导航。
交互式的好处在于人们在较短时间内可以探索较大的信息空间。这一点可以通过一个平台得到很好的理解。而不足之处在于这种交互性需要大量时间详细检查每一种可能性以测试可视化系统。而且,设计及时反馈用户行为的系统需要关注显著有效的算法。
任何可视化方法都需要好的布局设计方案。一些设计方法自动生成对称图形;另外一些画图方法从数据对称性开始。交互式可视化通过事件监听器来实现。对于一些事件监听器,交互式可视化可能是一种常识,而对于其他事件监听器来说,未必如此。下节描述了所有相关内容。
2.8.1 事件监听器
事件监听器是移动或点击鼠标即可实现的处理过程。技术上,有很多种事件,但纯粹的交互式可视化,我们仅需要了解当用户用鼠标浏览可视化时发生的情况。互动的等待时间,即系统对鼠标操作的响应时间,会非常有影响。
最显著的原则是:用户应该确定已完成一些操作,而不是悬而未决该操作是否仍在进行中。因此,诸如突出显示一个选项的反馈是一种成功确认操作完成的好方法。视觉反馈通常应该在大概一秒的立即响应滞后时间内发生。下面是Google图表中一个JavaScript事件监听器的案例:
另一个原则是执行时间是否比用户的自然预期长很多,一些进度指标应显示给用户。在JavaScript中写事件监听器更容易,但如果想用Python绘图方法创建一个交互式可视化,应该选择Plotly。
另一种模块,graph-tool(https://graph-tool.skewed.de),能够以一种直接的方式完成动画。在一个交互式窗口或画面外的文件,用GTK+来展示动画。这种想法很容易实现可视化,在网站上加以呈现和嵌入。
2.8.2 布局设计
为了从视觉上有效展示数据,了解布局设计方法就变得很重要。美学是测度布局算法的优势与不足的标准之一。如果可能的话,为了增加布局结果的可读性,所述结构需要层次或对称;一条关键的因素是对空间的利用。
对解析和理解任何图表来说,良好的布局是必要的。通常,为了便于理解,每一种布局唯一适用于不同的数据可视化。一些著名的布局设计方法如下:
圆形布局
径向布局
球状布局
1. 圆形布局
表格是数据的自然容器。无论信息何时呈现,用一个表的均值来展现表格的几率很高。然而,在很多情况下,当信息复杂(表格很大)时,表格很难用肉眼分析,表格数据模型仍然不够透明。
换句话说,一种有用的容器不总是呈现方法的有用方法。该表格很好得展示出单个数据,但是它们间的关系以及它们组成的模式仍然难以看到。圆形布局会用一些不同的结合(定性和定量)来实现可视化,如下图所示:
例如,如上图一样直观,用有限的空间展示复杂关系。
上图给出一个用圆形布局展示复杂分层关系的案例。
2. 径向布局
旭日可视化是一种径向空间填充的可视化技术,来展示树状结构(如上图所示)。还有其他的空间填充方法,即用其他视觉编码来描述层次。比如,树形图是空间填充的可视化,用到“容量”来展示“父子”关系。有一些微弱的变化,可以改善这种可视化的信息交流方式。
由于每个轨道的长度随半径增加,这趋向于有更多空间放置节点。随着水平的增加,径向树将在更大面积上扩散更多数量的节点。
3. 球状布局
球状布局存在不同的变化,而且其中一种可能是气泡形式。然而,如果我们用不同颜色和大小的气球(或者圆圈/气泡),则可视化结果能展示更多信息,如下图所示: