计算机图形学基础-23-可视化

《Fundamentals of Computer Graphics》5th(计算机图形学基础/虎书),中文翻译。

第 23 章 Visualization 可视化

计算机图形学的主要应用领域之一是可视化,其中计算机生成的图像被用来帮助人们理解空间和非空间数据。当问题没有足够明确的定义,使得计算机无法通过算法处理时,可视化被用于增强人类的能力。如果完全自动的解决方案可以完全替代人类判断,那么通常不需要可视化。可视化可以用于在探索完全陌生的数据集时产生新的假设,对于部分理解的数据集验证现有的假设,或者向另一个受众呈现关于已知数据集的信息。

可视化使人们通过感知系统将认知卸载到外部记忆形式,使用精心设计的图像作为外部记忆的一种形式。人类视觉系统是大脑的高带宽通道,有很多处理发生在并行和无意识水平上。因此,我们可以使用外部图像代替将事物记录在大脑内部。例如,让我们考虑理解《哥德尔、艾舍尔、巴赫:集异璧之大成》(Hofstadter,1979)中一些主题之间的关系这个任务;请参见图 23.1。

图 23.1。使用文本列表跟踪主题之间的关系是困难的。

当我们将数据集作为文本列表查看时,我们必须在低级别阅读单词并将其与以前读过的单词的记忆进行比较。仅凭认知和记忆就难以跟踪这数十个主题,更不用说全书中成百上千个主题了。高层次的问题,例如识别邻域,例如找到所有与目标主题“悖论”相距两步的主题,非常困难。

图 23.2 展示了与同一数据集对应的外部视觉表示形式,即节点链接图,其中每个主题是一个节点,两个主题之间的连接直接用一条线表示。通过移动眼睛沿着图像上的线来追踪节点是一种快速的低级别操作,具有最小的认知负荷,因此高层次的邻域搜索变得可能。节点的位置和它们之间的链路路由是由 dot 图形绘制程序(Gansner,Koutsofois,North,& Vo,1993)自动生成的。

图 23.2。将感知代替认知和记忆,使我们能够快速理解书籍主题之间的关系。

我们将数据集属性映射到视觉表示形式称为视觉编码。可视化中的一个核心问题是从可能的可视化表示形式的巨大空间中选择合适的编码,考虑到人类感知系统的特征、所涉及的数据集以及任务本身。

23.1 背景

23.1.1 历史

人们通过静态图像传达含义的历史可以追溯到三万多年前已知的最古老的洞穴壁画。今天我们继续通过各种方式进行视觉交流,从餐巾纸背面的粗糙素描到广告的精美图形设计。数千年来,制图师一直在研究如何制作代表我们周围世界某些方面的地图。第一批抽象的非空间数据集的视觉表示是在 18 世纪由威廉·普莱费尔(William Playfair)创建的 (Friendly, 2008)。

虽然我们已经可以创建动态图像超过 150 年了,但通过计算机图形硬件和算法在过去几十年中广泛可用才使得交互式地创建动态图像成为可能。小型数据集的静态可视化可以手动创建,但计算机图形能够实现大型数据集的交互式可视化。

23.1.2 资源限制

设计可视化系统时,我们必须考虑三种不同的限制:计算能力、人类感知和认知能力以及显示能力。

与计算机图形学的任何应用一样,计算机时间和内存是有限资源,通常存在硬性约束。如果可视化系统需要提供交互响应,则必须使用可以在几分之一秒内运行的算法,而不是几分钟或几小时。

在人类方面,必须考虑到记忆和注意力等有限资源。人类记忆因为长期召回和短期工作记忆而被广为人知。在第 23.4 节中,我们将讨论低级别视觉注意机制的优势和局限性,这些机制对视野进行大规模并行处理。我们在视觉工作记忆中存储惊人少量的信息,因此我们容易遭受“变盲”现象,即即使视野中有非常大的变化,如果我们正在关注其他事物,也不会注意到变化 (Simons,2000)。此外,警觉性也是极其有限的资源;我们执行视觉搜索任务的能力会迅速下降,数小时后的结果远不如前几分钟那么好(Ware,2000)。

显示能力是第三种要考虑的限制。可视化设计师经常“耗尽像素”,即屏幕的分辨率不足以同时显示所有所需信息。特定帧的信息密度是编码的信息量与未使用空间量之比。在显示尽可能多的信息以最小化导航和探索需求方面,存在权衡,而一次性显示太多信息会使用户被视觉混乱压倒。

23.2 数据类型

可视化设计的许多方面都受到我们需要查看的数据类型的驱动。例如,它是一张数字表格,还是一组物品之间的关系,或者本质上是空间数据,例如地球表面上的位置或文档集合?

我们从考虑一个数据表格开始。我们将行称为数据项,列称为维度,也称为属性。例如,行可能代表人,列可能是姓名、年龄、身高、衬衫尺码和最喜欢的水果。

我们区分三种维度类型:量化、有序和分类。量化数据,例如年龄或身高,是数值性的,我们可以对其进行算术运算。例如,68 英寸减去 42 英寸的数量是 26 英寸。对于有序数据,例如衬衫尺码,我们无法进行完整的算术运算,但有一个明确定义的顺序。例如,大号减去中号并没有实际含义,但我们知道中号介于小号和大号之间。分类数据,例如最喜欢的水果或姓名,没有显式的排序。我们只能区分两个东西是否相同(苹果)或不同(苹果与香蕉)。

关系数据或图形是另一种数据类型,其中节点通过链接连接。一种特定类型的图形是树状结构,通常用于分层数据。节点和边缘都可以具有相关属性。可视化中,单词“图形”有多个含义。我们在此讨论的节点链接图,遵循图形绘制和图论的术语,也可以称为网络。在统计图形领域,图形通常用于表示图表,例如第 23.10 图所示的时间序列数据的线图。

一些数据本质上是空间的,例如地理位置或三维空间中位于位置的测量场,例如医生用于查看人体内部结构的 MRI 或 CT 扫描。与每个空间点相关联的信息可能是无序的标量量集合、索引向量或张量。相反,非空间数据可以使用空间位置进行视觉编码,但该编码由设计师选择而不是在数据集本身的语义中隐含给定。这种选择是可视化设计中最核心和最困难的问题之一。

23.2.1 维度和数据项数量

需要进行视觉编码的数据维度数量是可视化设计问题中最基本的方面之一。适用于具有少数列的低维度数据集的技术通常在具有几十或几百列的高维度数据集中无法正常工作。数据维度可能具有分层结构,例如时间序列数据集,在多个时间尺度上存在有趣的模式。

数据项数量也很重要:在几百个项目的可视化中表现良好的可视化通常无法扩展到数百万个项目。在某些情况下,困难纯粹是算法上的,其中计算需要太长的时间;在其他情况下,它是一个更深层次的感知问题,即使是即时算法也无法解决,其中视觉混乱使得表示对人不可用。维度内可能出现的值范围也可能是相关的。

23.2.2 数据转换和派生维度

数据通常在可视化管道中从一种类型转换为另一种类型,以解决领域问题。例如,原始数据维度可能由量化数据组成:表示温度的浮点数。对于某些任务,例如查找局部天气模式中的异常,可以直接使用原始数据。对于另一个任务,例如决定水是否适合淋浴,数据可能会被转换为有序维度:热、温和或冷。在此转换中,大部分详细信息都被聚合掉了。在第三个例子中,制作土司时,甚至更丢失的转换为分类维度也足够了:烤焦或未烤焦。

将数据转换为派生维度而不仅仅是在其原始形式下进行视觉编码的原则是一个强大的思想。在图 23.10 中,原始数据是时间序列曲线的有序集合。转换是对数据进行聚类,将需要进行视觉编码的信息量减少到几个高度有意义的曲线。

23.3 人类中心设计过程

可视化设计过程可以分为多个层次级联集合,如图 23.3 所示。这些层次彼此依赖;上一层的输出作为下一层的输入。

图 23.3 验证可视化的四个嵌套层次。

23.3.1 任务描述

给定的数据集有许多可能的视觉编码方式。选择使用哪种视觉编码方式可以由某个特定用户的具体需求来指导。不同的问题或任务需要非常不同的视觉编码。例如,考虑软件工程领域。通过 Tarantula 接口(如图 23.11 所示),理解测试套件的覆盖范围得到了很好的支持。然而,在重构代码时理解软件的模块分解的任务可能更适合直接显示其层次结构作为节点链接图。

理解某个目标受众的要求是一个棘手的问题。在人为中心的设计方法中,可视化设计师与目标用户团队一起工作,并经过一段时间的实践 (C. Lewis&Rieman,1993)。在大多数情况下,用户知道他们需要以某种方式查看他们的数据,但无法直接将其需求表达为基于数据类型的明确任务。迭代式设计过程包括通过面试和观察用户的工作来收集有关他们问题的信息,创建原型,并观察用户如何与这些原型交互以确定所提议的解决方案实际上是否有效。需求分析的软件工程方法也可能很有用(Kovitz, 1999)。

23.3.2 抽象化

在第一层中确定了特定领域问题之后,下一层需要将其抽象成更通用的表示形式,作为前一节讨论的数据类型上的操作。来自非常不同领域的问题可以映射到相同的可视化抽象。这些通用操作包括排序、过滤、描述趋势和分布、查找异常值和离群值以及查找相关性 (Amar、Eagan 和 Stasko,2005)。它们还包括特定于特定数据类型的操作,例如按图或树形式遍历关系数据的路径。

此抽象步骤通常涉及将原始原始数据转换为派生维度。这些派生维度通常与原始数据的类型不同:图形可能会转换为树形结构,表格数据可以通过使用阈值根据字段值决定链接是否存在而转换为图形等等。

23.3.3 技术和算法设计

一旦选择了抽象,下一层就是设计适当的视觉编码和交互技术。第 23.4 节介绍了视觉编码的原则,我们在第 23.5 节中讨论交互原则。我们在第 23.6 节和 23.7 节中介绍了考虑这些原则的技术。

非常详细的可视化算法讨论可惜超出了本章的范围。

23.3.4 验证

四个层次各有不同的验证要求。

第一层旨在确定问题是否正确地描述了:是否真的存在一群目标受众执行特定任务会从所提出的工具中受益?测试假设和猜测的一个直接方法是观察或面试目标受众的成员,以确保可视化设计师充分理解他们的任务。一种无法在构建和部署工具之前进行的测量是监测其在该社区内的采用率,尽管当然除了效用外还有许多其他因素会影响采用率。

下一层用于确定将领域问题抽象为特定数据类型上的操作是否实际解决了所需的问题。在原型或完成的工具部署后,可以进行现场研究,观察它是否被预期的受众使用以及如何使用。还可以对系统生成的图像进行定性和定量分析。

第三层的目的是验证设计师选择的视觉编码和交互技术是否有效地将所选抽象传达给用户。一个直接的测试是证明单个设计选择不违反已知的感知和认知原则。这种正当性是必要但不充分的,因为可视化设计涉及许多相互作用的选择之间的权衡。在构建系统后,可以通过正式的实验室研究对其进行测试,让许多人完成分配的任务,以便可以统计分析完成任务所需时间和错误率的测量。

第四层用于验证旨在执行编码和交互选择的算法是否更快或占用的内存比以前的算法少。一个直接的测试是分析所提议算法的计算复杂度。在实现之后,可以直接测量系统的实际时间性能和内存使用情况。

23.4 可视化编码原则

我们可以将可视化编码描述为通过视觉通道传递信息的图形元素,称为标记。零维标记是一个点,一维标记是一条线,二维标记是一个区域,三维标记是一个体积。许多视觉通道可以编码信息,包括空间位置、颜色、大小、形状、方向和运动方向。可以同时使用多个视觉通道来编码不同的数据维度;例如,图 23.4 显示了水平和垂直空间位置、颜色和大小用于显示四个数据维度的示例。可以使用多个通道来冗余地编码相同的维度,以显示更少但更清晰的信息。

图 23.4 横向和纵向空间位置、颜色和大小这四种可视化通道被用于散点图表中的信息编码 图片由 George Robertson 提供(Robertson, Fernandez, Fisher, Lee, & Stasko, 2008),© IEEE 2008。

23.4.1 可视化通道特征

可视化通道的重要特征是可区分性、可分离性和突出性。

不是所有通道都具有相同的可区分性。进行了许多心理物理实验,以测量人们对不同视觉通道编码信息的精确区分能力。我们的能力取决于数据类型是否是定量、有序或分类的。图 23.5 显示了三种数据类型的视觉通道排名。图 23.6 显示了 Tableau/Polaris 系统中一些默认的视觉通道映射,这些映射考虑到了数据类型。

图 23.5:我们感知视觉通道编码的信息能力取决于使用的数据类型,从最准确的排在上面到最不准确的排在下面。重新绘制和改编自(Mackinlay,1986)。

图 23.6:Tableau/Polaris 系统默认的四种视觉通道根据数据类型的映射。图片由 Chris Stolte 提供(Stolte,Tang 和 Hanrahan,2008),© 2008 IEEE。

空间位置是所有三种数据类型中最准确的视觉通道,它主导了我们对可视化编码的感知。因此,两个最重要的数据维度通常被映射到水平和垂直空间位置。

然而,其他通道在不同数据类型之间有很大的差异。长度和角度通道对于定量数据高度可辨别,但对于有序和分类数据则差强人意,而色调通道相反,在分类数据方面非常准确,但在定量数据方面则一般。

我们必须始终考虑数据维度所需的动态范围与通道可用的动态范围之间是否匹配。例如,使用线宽进行编码时,使用一维标记和大小通道。我们可以可靠地使用有限数量的线宽步骤来视觉编码信息:屏幕分辨率强制执行最小的细度为一个像素(忽略抗锯齿以简化本讨论),并且存在一个最大厚度,超过该厚度对象将被视为多边形而不是线。线宽可以很好地显示数据维度中的三到四个不同值,但对于几十或几百个值,它将是一个糟糕的选择。

一些视觉通道是整合在预意识水平上融合在一起的,因此它们不是可视化编码不同数据维度的好选择。其他通道是可分离的,在视觉处理期间没有相互作用,并且可以安全用于编码多个维度。图 23.7 显示了两个通道对。颜色和位置高度可分离。我们可以看到水平大小和垂直大小并不容易分离,因为我们的视觉系统会自动将它们集成在一起,形成统一的面积感知。大小与许多通道交互:随着物体变得越来越小,它的形状或颜色变得更难区分。

图 23.7:颜色和位置是可分离的通道,非常适合于编码不同的数据维度,但水平大小和垂直大小通道会自动融合成一个整体面积感知。重新绘制自(Ware,2000)。

我们可以有选择地关注通道,以使特定类型的项目在视觉上“突出显示”,如第 19.4.3 节中所讨论的。视觉突出效果的一个例子是当我们在一片蓝色中立刻发现红色物品,或者区分圆形和正方形。视觉突出效果强大且可扩展,因为它在并行处理中进行,无需逐个处理项的意识。许多视觉通道都具有这种突出效果特性,包括上述列表以及曲率、闪烁、立体深度甚至光线方向等。然而,通常我们只能同时利用一个通道的突出效果。例如,当包含白色或黑色的圆圈和正方形组成的群体中需要搜索时,白色圆圈不会从中突出,如图 19.46 所示。当我们需要同时跨越多个通道进行搜索时,找到目标对象所需的时间长度与场景中的对象数量成线性关系。

23.4.2 颜色

颜色可以是一个非常强大的通道,但许多人不理解其属性并且使用不当。如第 19.2.2 节中所讨论的,我们可以从色相、饱和度和明度三个独立的视觉通道来考虑颜色。区域大小强烈影响我们感知颜色的能力。在小区域中,颜色相对较难感知,设计者应该使用明亮、高饱和度的颜色来确保颜色编码可区分。在大区域中,例如背景中,情况正好相反,应该使用低饱和度的淡色调以避免刺激观众的眼睛。

色相对于分类数据的编码是一个非常强的线索。然而,可用的动态范围非常有限。当彩色区域很小且散布在整个显示器上时,人们只能可靠地区分大约十几种色调。进行颜色编码的一个好指导原则是保持类别数少于八个,记住背景和中性对象颜色也计入总数。

对于有序数据,明度和饱和度是有效的,因为它们具有隐含的感知排序。人们可以可靠地按照明度进行排序,始终将灰色放在黑色和白色之间。对于饱和度,人们可靠地将较少饱和度的粉红色放在完全饱和的红色和零饱和的白色之间。然而,对于有序数据,色相不如其他通道好,因为它没有隐含的感知排序。当被要求创建红、蓝、绿和黄的顺序时,人们并不给出相同的答案。人们可以学习惯例,比如交通信号灯的绿-黄-红,或者彩虹中颜色的顺序,但这些构造处于比纯粹感知更高的层次。有序数据通常使用离散的一组颜色值来显示。

定量数据使用颜色映射来显示,这是一个可以是连续的或离散的颜色值范围。许多软件包中非常不幸的默认设置是彩虹色图,如图 23.8 所示。标准的彩虹色标尺存在三个问题。首先,使用色相来指示顺序。更好的选择应该是使用明度,因为它具有隐含的感知排序。更重要的是,人眼对亮度的反应最强。其次,这种比例尺在感知上不是线性的:连续范围中的等步长未被我们的眼睛感知为相等的步长。图 23.8 显示了一个例子,在这个例子中,彩虹色标尺混淆了数据。尽管从–2000 到–1000 的范围有三种明显的颜色(青色、绿色和黄色),但从–1000 到 0 的同样大小的范围看起来只有黄色。右侧的图表显示,感知值与亮度密切相关,而在此比例尺中,亮度甚至不是单调递增的。

图 23.8:标准的彩虹色图存在两个缺陷:它使用色相来表示顺序,并且在感知上不是等线性的。提供者:Bernice Rogowitz。

相比之下,图 23.9 使用更合适的颜色映射显示相同的数据,其中明度单调递增。色相用于创建一个有意义的语义分类:观察者可以讨论数据集中的结构,例如深蓝色的海洋、青色的大陆架、绿色的低地和白色的山脉。

图 23.9:使用颜色图,在单调递增的明度用于显示顺序,而色相用于分割为类别区域时,相同数据的结构变得更加清晰。提供者:Bernice Rogowitz。

在离散和连续情况下,颜色映射应考虑数据是否是顺序或分散的。ColorBrewer 应用程序 (www.colorbrewer.org) 是制作颜色图的优秀资源(Brewer,1999)。

另一个重要问题是,在使用颜色进行编码时,约有 10%的男性人口存在红绿色盲。如果选择使用红色和绿色进行编码,因为目标领域中的惯例,则明度或饱和度除了色相之外也应被充分编码。应该使用工具如网站 http://www.vischeck.com 来检查颜色方案是否对色盲人士可区分。

关于是否使用二维或三维通道进行空间位置的问题已经被广泛研究。当计算机可视化在 20 世纪 80 年代末开始出现,交互式 3D 图形是一项新技术时,人们对 3D 表示充满了热情。随着该领域的成熟,研究人员开始理解在应用于抽象数据集时使用 3D 方法的代价(Ware,2001)。

遮挡是 3D 中的一个主要问题,其中数据集的某些部分被其他部分遮挡。尽管隐藏表面删除算法(如 z-buffer 和 BSP 树)可以快速计算正确的 2D 图像,但人们仍必须将许多这些图像合成为内部心理地图。当人们观察由未知物体构成的图像时,通常可以快速理解所看到的内容。然而,当他们看到一个陌生的数据集,其中所选的视觉编码将抽象维度映射到空间位置时,即使可以使用交互式导航控件更改 3D 视点,理解其 3D 结构的细节也可能很具有挑战性。原因再次是人类工作记忆的容量有限(Plumlee&Ware,2006)。

3D 的另一个问题是透视失真。尽管真实世界中的物体确实在远离我们的眼睛时变小,但透视使得直接比较物体高度困难(Tory,Kirkpatrick,Atkins 和 Möller,2006)。同样,尽管我们通常可以基于过去的经验判断真实世界中熟悉物体的高度,但不能必然地对具有高度传达含义的完全抽象数据进行这样的判断。例如,在 3D 条形图中判断条形高度比在多个水平对齐的 2D 条形图中要困难。

无约束的 3D 表示的另一个问题是,任意方向上的文本在 3D 空间中比与 2D 图像平面对齐的文本更难读取(Grossman,Wigdor 和 Balakrishnan,2007)。

图 23.10 说明了精心选择的抽象数据集的二维视图如何避免 3D 视图中固有的遮挡和透视失真问题。顶部视图显示了直接从原始时间序列数据创建的 3D 表示,其中每个横截面都是显示一天功耗的 2D 时间序列曲线,沿第三轴延伸,每天一个曲线。虽然此表示易于创建,但我们只能看到大规模的模式,例如工作时间期间更高的消耗和冬季和夏季之间的季节性变化。要创建底部的二维链接视图,对这些曲线进行了分层聚类,并且仅在同一 2D 框架中叠加绘制表示顶级聚类的汇总曲线。因为没有透视失真或遮挡,所以易于直接比较所有时段的曲线高度。日历视图使用相同的颜色编码,非常有效地用于理解时间模式。

图 23.10:顶部:这个时间序列数据集的 3D 表示引入了遮挡和透视失真问题。底部:派生汇总曲线和日历的链接 2D 视图允许直接比较并显示更细粒度的模式。提供者:Jarke van Wijk(van Wijk&van Selow,1999),© 1999 年 IEEE。

相比之下,如果数据集包含本质上是 3D 空间数据的内容,例如显示机翼上的流体流动或来自 MRI 扫描的医学成像数据集,则 3D 视图的成本被其帮助用户构建有用的数据集结构心理模型的好处所抵消。

23.4.4 文本标签

标签和图例形式的文本是创建可用而不仅仅是漂亮的可视化的非常重要的因素。轴和刻度应该加上标签。图例应该指示颜色的意义,无论是作为离散的补丁还是连续的颜色渐变。数据集中的各个项目通常都有与它们相关联的有意义的文本标签。在许多情况下,始终显示所有标签会导致视觉杂乱过多,因此可以使用标签定位算法仅为一部分项目显示标签,这些算法可以在避免重叠的同时以所需密度显示标签(Luboschik,Schumann 和 Cords,2008)。选择代表一组项目的最佳标签的一个直接方法是使用基于某些标签重要性度量的贪心算法,但根据组的特征来合成新标签仍然是一个困难的问题。更注重交互的方法是仅基于用户的交互指示为单个项目显示标签。

23.5 交互原则

在设计可视化时,有几个交互原则非常重要。低延迟的视觉反馈使用户可以更流畅地进行探索,例如,当光标仅悬停在对象上时就显示更多细节,而不需要用户明确点击。选择项目是与大型数据集交互时的基本操作,通过高亮显示来直观地指示所选集合。颜色编码是常见的突出显示形式,但也可以使用其他通道。

许多形式的交互可以从它们改变的显示方面考虑。导航可以被认为是视口的更改。排序是对空间顺序的更改;也就是改变数据如何映射到空间位置视觉通道。整个视觉编码也可以更改。

23.5.1 首先概览,缩放和过滤,根据需求查看详细信息

具有影响力的口号“首先概览,缩放和过滤,根据需求查看详细信息”(Shneiderman,1996)阐明了交互和导航在可视化设计中的作用。概览帮助用户注意到进一步调查可能会产生成果的区域,无论是通过空间导航还是过滤。正如我们下面所讨论的那样,细节可以以许多方式呈现:通过点击或光标悬停产生弹出窗口,在单独的窗口中,并通过实时更改布局以腾出空间来显示其他信息。

23.5.2 交互成本

交互具有力量和成本。交互的好处是人们可以探索比单个静态图像更大的信息空间。然而,交互的成本是它需要人类的时间和注意力。如果用户必须彻底检查每种可能性,使用可视化系统可能会退化为人力搜索。通过视觉编码自动检测感兴趣的特征以明确地引起用户的注意是可视化设计师的一个有用目标。但是,如果手头的任务可以完全通过自动方式解决,则首先不需要可视化。因此,在寻找可自动化的方面和依赖循环中的人来检测模式之间总是存在权衡。

23.5.3 动画

动画使用时间展示变化。我们将仅能播放,暂停或停止连续帧的动画与真正的交互控制区分开来。有相当多的证据表明,通过帮助人们跟踪对象位置或摄像机视点的变化,动画转换可以比跳跃更有效(Heer&Robertson,2007)。虽然动画在叙述和讲故事方面非常有效,但在可视化上下文中经常被无效地使用(Tversky,Morrison&Betrancourt,2002)。使用动画显示随时间变化的数据可能似乎很明显,因为动画是一种随时间变化的视觉形式。然而,当人们看到由许多帧组成的动画时,他们很难在不连续的单个帧之间进行具体的比较。人类视觉记忆的非常有限容量意味着我们在比较过去看到的事物的记忆时要比比较当前视野中的事物更差。对于需要在多达几十个帧之间进行比较的任务,侧-by-side 比较通常比动画更有效。此外,如果在帧之间发生变化的对象数量很大,则人们将难以跟踪发生的所有事情(Robertson 等人,2008)。叙述性动画被精心设计以避免同时发生太多行动,而被可视化的数据集没有这样的约束。在仅涉及两个框架并且变化有限的特殊情况下,简单的向后翻转两者之间可以是识别它们之间差异的有用方法。

23.6 组合和相邻视图

非常基本的视觉编码选择是是否将所有内容显示在同一帧或窗口中的单个组合视图,或者将多个视图相邻放置。

23.6.1 单个绘图

当只有一个或两个数据维度需要编码时,水平和垂直空间位置是明显的可视通道,因为我们最准确地感知它们,并且位置对我们内部数据集模型的影响最大。传统的统计图形显示线性图,条形图和散点图都使用标记的空间排序来编码信息。这些显示可以使用其他可视通道进行增强,例如颜色,大小和形状,如图 23.4 中所示的散点图。

最简单的标记是单个像素。在以像素为导向的显示中,目标是尽可能提供尽可能多项目的概述。这些方法在高信息密度下使用空间位置和颜色通道,但排除了大小和形状通道的使用。图 23.11 显示了 Tarantula 软件可视化工具(Jones 等人,2002),其中大部分屏幕用于概述源代码,使用一个像素高的线(Eick,Steffen&Sumner,1992)。每条线的颜色和亮度显示它在执行测试套件时是否通过,失败或出现混合结果。

图 23.11。Tarantula 显示了使用单像素线色彩编码的软件测试套件执行状态的源代码概述。图像由 John Stasko 提供(Jones,Harrold&Stasko,2002)。

23.6.2 叠加和分层

当它们的空间位置相容时,可以在同一帧中叠加多个项目。当所有项目共享轴时,可以在同一个线性图中显示多条线,并在同一个散点图中显示许多点。单个共享视图的一个好处是非常容易比较不同项目的位置。如果数据集中的项目数量有限,则通常可以使用单个视图。当存在足够多的项目,以至于可视化混乱成为问题时,视觉分层可以扩展单个视图的有用性。图 23.12 显示了当用户将光标移动到单词块上时,大小,饱和度和亮度通道的冗余组合如何用于区分前景层和背景层。

图 23.12。在 Constellation 系统(Munzner,2000)中使用大小,饱和度和亮度的视觉分层。

23.6.3 符号

我们一直在讨论使用简单标记的视觉编码的想法,其中单个标记每个使用的视觉通道只能有一个值。对于更复杂的标记,我们称之为符号,其中子区域具有不同的视觉通道编码的内部结构。

设计适当的符号与设计视觉编码面临相同的挑战。图 23.13 显示了各种符号,包括最初由切尔诺夫提出的臭名昭著的脸孔符号。使用面孔来显示抽象数据维度的危险在于,我们对不同面部特征的感知和情感反应高度非线性,其方式尚未完全理解,但变异性比迄今为止讨论过的视觉通道之间的差异更大。我们可能对表情状态指示的特征(例如眉毛方向)比其他特征(例如鼻子大小或脸型)更敏感。

图 23.13。我们称之为符号的复杂标记具有不同数据维度的视觉编码子部分。图像由 Matt Ward 提供(M.O. Ward,2002)。

复杂符号需要每个符号的显着显示区域,如图 23.14 所示,迷你条形图显示沿着螺旋路径的许多点上四个不同维度的值。可以使用更简单的符号创建全局视觉纹理,符号大小非常小,无法在缩放时读取单个值,但可以从概述级别辨别区域边界。图 23.15 显示了一个使用类似于图 23.13 右上角的人形符号的示例。可以将符号放置在规则间隔处,或者使用原始或派生数据维度在数据驱动的空间位置上放置符号。

图 23.14。复杂符号需要显着的显示区域,以便读取编码的信息。图像由 Matt Ward 提供,使用 SpiralGlyphics 软件创建(M.O. Ward,2002)。

图 23.15。简单符号的密集阵列。图像由 Georges Grinstein 提供(S. Smith,Grinstein 和 Bergeron,1991),© 1991 IEEE。

23.6.4 多重视图

我们现在转向使用多个链接在一起的视图的方法,而不是只有一个框架的方法。最常见的链接形式是链接突出显示,其中在一个视图中选择的项在所有其他视图中突出显示。在链接导航中,一个视图中的移动会触发其他视图中的移动。

有许多种类型的多视图方法。通常称为多视图方法的方法中,在几个视图中显示相同的数据,每个视图具有不同的视觉编码,可清晰地显示数据集的某些方面。跨多个视觉编码进行链接突出显示的优势在于,一个视图中连续区域内的项目在其他视图中通常分布非常不同。在小多数方法中,每个视图对于不同的数据集具有相同的视觉编码,通常具有共享轴之间的帧,以便它们之间的空间位置比较有意义。通过小型多重比较,可以避免将所有数据叠加在同一个视图中所产生的视觉混乱,并且避免了动画中先前查看的帧的人类记忆限制。

概述和详细信息方法是在两个视图中具有相同的数据和相同的视觉编码,其中它们之间唯一的区别是缩放级别。在大多数情况下,概述使用的显示空间比详细视图少得多。概述和详细视图的组合常见于许多工具中,从地图软件到照片编辑等。采用详细信息按需方法,另一个视图显示有关某些选择的项目的更多信息,可以作为靠近光标的弹出窗口或在显示的另一部分中的永久窗口中。

确定视图本身与彼此之间最适当的空间位置可能是一个重要的问题,就像在单个视图内确定标记的空间位置一样重要。在一些系统中,视图的位置是任意的,并由窗口系统或用户决定。对齐视图允许精确比较它们之间的位置,可以垂直、水平或用于两个方向的阵列。正如在视图中可以对项进行排序一样,在显示中也可以对视图进行排序,通常是针对衡量整个视图某个方面而不是其中的个别项的派生变量。

图 23.16 展示了一种使用多个视图的人口普查数据可视化方法。除了地理信息外,每个县的人口统计信息还包括人口、密度、性别、中位年龄、自 1990 年以来的百分比变化和主要族裔群体的比例。使用的视觉编码包括地理,散点图,平行坐标,表格和矩阵视图。所有视图都使用相同的颜色编码,并在底部中央显示图例。散点图矩阵显示了跨所有视图的链接突出显示,在某些视图中蓝色项彼此靠近,在其他视图中则分散。左上角的地图是中心大细节地图的概述。表视图允许直接按感兴趣的维度进行排序和选择。

图 23.16。使用 Improvise 工具包创建的多重视图可视化。图像由 Chris Weaver 提供。

23.7 数据减少

到目前为止,我们讨论的视觉编码技术显示了数据集中的所有项目。然而,许多数据集如此庞大,以至于同时显示所有内容会导致视觉混乱,使视觉表示难以或不可能被查看者理解。减少显示的数据量的主要策略是概述和聚合、过滤和导航、焦点+上下文技术和降维。

23.7.1 概述和聚合

对于小型数据集,视觉编码可以轻松显示所有项的所有数据维度。对于中等大小的数据集,可以通过显示每个项目的较少详细信息来构建显示所有项目信息的概述。许多数据集具有多个尺度的内部或可派生结构。在这些情况下,多尺度视觉表示可以提供许多概述级别,而不仅仅是一个级别。概述通常用作起点,为用户提供有关在哪里钻取以进行更详细检查的线索。

对于更大的数据集,创建概述需要某种形式的视觉汇总。一种数据减少的方法是使用聚合表示,其中概述中的单个视觉标记明确表示许多项目。

聚合的挑战在于,在总结过程中避免消除数据集中的有趣信号。在制图文献中,创建不同尺度的地图同时保留重要的区分特征的问题已经在地图概化的名称下进行了广泛的研究(Slocum,McMaster,Kessler 和 Howard,2008)。

23.7.2 过滤和导航

另一种减少数据的方法是过滤数据,仅显示项目的子集。过滤通常通过直接选择一个或多个数据维度中感兴趣的范围来执行。

导航是一种基于空间位置的特定过滤方式,其中更改视点会改变可见的项目集。在可视化中使用几何和非几何缩放。使用几何缩放,可以使用标准计算机图形控件更改 2D 或 3D 空间中的摄像机位置。在逼真的场景中,项目应该以取决于它们与摄像机之间距离的大小绘制,只有它们的表观大小基于该距离而变化。但是,在抽象空间的视觉编码中,非几何缩放可能很有用。在语义缩放中,根据可用于绘制对象的像素数目,对象的视觉外观会发生巨大变化。例如,文本文件的抽象视觉表示可以从一个带有无标签的小色彩编码框变为仅包含文件名作为文本标签的中等大小框,再到包含文件内容多行摘要的大矩形。在逼真的场景中,距摄像机足够远的物体不会在图像中可见,例如,当它们占屏幕面积不到一个像素时。具有可见性保证,使用原始或派生数据维度之一作为重要性的衡量标准,并且必须始终在图像平面上看到足够重要性的对象的某种表示。

23.7.3 焦点+上下文

焦点+上下文技术是另一种减少数据的方法。用户交互地选择数据集项的子集作为焦点,并详细绘制它们。视觉编码也包括有关所显示的其余数据集的部分或全部的信息,集成到显示焦点项目的同一视图中以提供上下文。许多这些技术使用精心选择的扭曲将放大的焦点区域和缩小的上下文区域组合成一个统一的视图。

一个常见的交互隐喻是可移动的鱼眼镜头。双曲几何为影响视图中所有对象的单个径向透镜提供了优雅的数学框架。另一个交互隐喻是使用不同形状和放大级别的多个透镜,仅影响局部区域。拉伸和压缩导航使用橡胶板的交互隐喻,其中拉伸一个区域会挤压其他区域,如图 23.17 所示。板的边界固定,因此所有项目都在视口内,尽管许多项目可能被压缩到亚像素大小。鱼眼比喻不限于在空间布局后使用几何透镜;它可以直接用于结构化数据,例如分层文档,其中某些部分已折叠,而其他部分则展开。

图 23.17。TreeJuxtaposer 系统具有拉伸和压缩导航以及标记为颜色的区域的可见性保证(Munzner,Guimbretière,Tasiran,Zhang 和 Zhou,2003)。

这些基于扭曲的方法是与非几何缩放相同精神的另一个非字面上的导航示例。在大型且不熟悉的数据集中进行导航时,用户可能会在高缩放级别下迷失方向,因为他们只能看到一个小的局部区域。这些方法旨在提供比单个未扭曲视图更多的上下文信息,以期如果地标仍然可识别,人们可以保持定位。但是,这种类型的扭曲对于用户仍然可能令人困惑或难以跟踪。扭曲与多个视图或单个逼真视图相比的成本和收益尚未完全理解。标准的三维透视是一种特别熟悉的扭曲形式,早期的可视化工作中明确将其用作一种焦点+上下文形式。然而,随着第 23.4 节讨论的三维空间布局成本的进一步了解,这种方法变得不那么流行。

提供焦点项周围上下文的其他方法不需要扭曲。例如,在图 23.18 中显示的 SpaceTree 系统省略了树中的大多数节点,仅显示交互选择的焦点节点与树根之间的路径以提供上下文。

图 23.18。SpaceTree 系统显示根节点和交互选择的焦点节点之间的路径,以提供上下文(Grosjean,Plaisant 和 Bederson,2002)。

23.7.4 维度约减

到目前为止讨论的数据减少方法减少了要绘制的项目数。当有许多数据维度时,维度约减也可以有效。

使用切片,从维度中选择一个值进行消除,并仅提取该维度匹配该值的项目以包括在低维切片中。切片在 3D 空间数据中特别有用,例如在沿着头骨的不同高度检查人类头部的 CT 扫描切片时。切片可以用于同时消除多个维度。

使用投影,不保留有关消除的维度的任何信息;这些维度的值被简单地舍弃,所有项目仍然显示。标准图形透视变换是一种熟悉的投影形式,它从 3D 投影到 2D,在此过程中丢失有关深度的信息。在数学可视化中,可以通过从 4D 投影到 3D 来显示高维几何对象的结构,然后进行标准投影到图像平面,并使用颜色编码来自投影维度的信息。当用于非空间数据时,这种技术有时称为维度过滤。

在某些数据集中,低维空间中可能存在有趣的隐藏结构,其维度远低于原始数据维度。例如,有时直接测量感兴趣的自变量是困难或不可能的,但是大量的因变量或间接变量可用。目标是找到一组小的维度,它们忠实地表示数据集中大部分结构或方差。这些维度可以是原始维度,也可以是原始维度的线性或非线性组合。主成分分析是一种快速,广泛使用的线性方法。已经提出了许多非线性方法,包括多维缩放(MDS)。这些方法通常用于确定数据集中是否存在大规模集群;在低维绘图中的细粒度结构通常不可靠,因为减少时会丢失信息。图 23.19 显示了单个散点图中的文档集合。当数据集的真实维数远高于两个时,可能需要显示成对合成维度的散点图矩阵。

图 23.19。使用 Glimmer 多维缩放方法进行维度约减,显示文档数据集中的群集(Ingram,Munzner 和 Olano,2009),© 2009 IEEE。

23.8 示例

我们在本章中以几个示例结束,介绍使用上述技术可视化特定类型数据的方法。

23.8.1 表格

表格数据非常常见,所有电子表格用户都知道。在可视化中的目标是通过易于感知的视觉通道对此信息进行编码,而不是强迫人们阅读数字和文本。图 23.20 显示了 Table Lens,这是一种焦点+上下文方法,其中量化值被编码为上下文区域中一个像素高线条的长度,并在焦点区域中显示为数字。数据集的每个维度都显示为一列,项目的行可以根据该列中的值进行重新排序,只需单击标题即可。

图 23.20。Table Lens 提供了与表格数据的焦点+上下文交互,可以根据每个维度列中的值立即重新排序。图片由 Stuart Card 提供(Rao&Card,1994),©1994 ACM, Inc. 获得许可后包含在此处。

传统的笛卡尔散点图方法,其中项目作为点相对于垂直轴绘制,仅适用于两维和三维数据。许多表格包含超过三个维度的数据,使用其他视觉通道编码的附加维度数量受到限制。平行坐标是一种使用空间位置同时可视化更多维度的方法,其中轴是平行而不是垂直的,并且 n 维项目显示为跨越每个 n 轴一次的折线(Inselberg&Dimsdale,1990; Wegman,1990)。图 23.21 显示了一个包含 8 个维度、23 万个项目的数据集,具有多个详细级别(Fua,Ward 和 Rundensteiner,1999),从顶部的高级视图到底部的更细节的视图。使用分层平行坐标,项目被聚类并且整个项目簇由变宽和透明度不同的带子代表,其中平均值位于中心,每个轴上的宽度取决于该维度中簇中项目的值。每个带子的着色基于根据相似性度量标准计算出的簇之间的接近程度。

图 23.21。分层平行坐标以多个详细级别显示高维数据。图片由 Matt Ward 提供(Fua 等人,1999),©1999 IEEE。

23.8.2 图形

图形绘制领域涉及在 2D 或 3D 空间中为图形中的节点找到空间位置并路由这些节点之间的边缘(Di Battista,Eades,Tamassia 和 Tollis,1999)。在许多情况下,通过仅使用直线边缘或仅允许类正交布局的直角弯曲来简化边缘路由问题,但是一些方法处理真实曲线。如果图形具有定向边缘,则可以使用分层方法通过节点的水平或垂直空间排序来显示分层结构,如图 23.2 所示。

一套美学标准将有关可读图形的人类判断作为指标操作化,可以在提议的布局上计算这些指标(Ware,Purchase,Colpys 和 McGill,2002)。图 23.22 显示了一些示例。有些指标应该最小化,例如边缘交叉数,布局的总面积和直角弯曲或曲线数。其他指标应该最大化,例如角分辨率或对称性。问题很难,因为这些标准中大多数都是单独的 NP 难问题,而且它们是相互不兼容的(Brandenburg,1988)。

图 23.22。图形布局美学标准。顶部:应最小化边缘交叉数。中间:应最大化角分辨率。底部:对称性在左侧最大化,而右侧最小化交叉数,显示单独的 NP 难指标之间的冲突。

许多节点-链接图绘制方法使用力导向放置,这是由边缘上的弹簧力吸引节点处的斥力粒子所组成的直观物理隐喻。尽管天真的方法具有高时间复杂度并容易陷入局部最小值,但是付出了大量的工作开发更复杂的算法,例如 GEM(Frick,Ludwig 和 Mehldau,1994)或 IPSep-CoLa(Dwyer,Koren 和 Marriott,2006)。图 23.23 显示了一个使用 r-PolyLog 能量模型的交互式系统,其中创建了聚类图的焦点+上下文视图,其中包括几何和语义鱼眼(van Ham&van Wijk,2004)。

图 23.23。使用几何和语义鱼眼显示聚类图的力导向放置。图片由 Jarke van Wijk 提供(van Ham&van Wijk,2004),©2004 IEEE。

还可以通过显示邻接矩阵来视觉编码图形,其中所有顶点沿每个轴放置,如果它们之间存在边,则在两个顶点之间的单元格上着色。MatrixExplorer 系统使用多链接视图帮助社会科学研究人员使用矩阵和节点链接表示来可视化分析社交网络(Henry&Fekete,2006)。图 23.24 显示了这两个视图中相同图形结构创建的不同视觉模式:A 代表连接几个社区的演员;B 是一个社区;C 是一个团伙或完整子图。矩阵视图不会受到杂乱的边缘交叉的影响,但许多任务,包括路径跟随,在这种方法中更加困难。

图 23.24。可以使用矩阵或节点链接视图显示图形。图片由 Jean-Daniel Fekete 提供(Henry&Fekete,2006),©2006 IEEE。

23.8.3 树

树是一个非常常见的图形特例,因此已经有大量的可视化研究致力于它们。一个在二维平面上排列树的简单算法对于小树效果很好(Reingold&Tilford,1981),而一个更复杂但可扩展的方法在线性时间内运行(Buchheim,Jünger 和 Leipert,2002)。图 23.17 和 23.18 还显示了不同的空间布局方法的树形结构,但这四种方法都通过绘制连接它们的链接来视觉编码父节点和子节点之间的关系。

Treemaps 使用包含而不是连接来显示树中父节点和子节点之间的层次关系(B. Johnson&Shneiderman,1991)。也就是说,treemaps 将子节点嵌套在父节点的轮廓内部显示。图 23.25 显示了近 100 万个文件的分层文件系统,其中文件大小由矩形大小编码,文件类型由颜色编码(Fekete&Plaisant,2002)。叶子节点处的节点大小可以编码附加数据维度的大小,但内部节点的大小不显示该维度的值;它由它们的后代的累积大小所决定。尽管使用 treemaps 比使用节点链接方法更难以完成理解树的拓扑结构或跟踪路径等任务,但是涉及理解与叶节点相关联的属性的任务得到了很好的支持。Treemaps 是填充空间的表示,通常比节点链接方法更紧凑。

图 23.25。显示接近一百万个文件的文件系统的 Treemap。图片由 Jean-Daniel Fekete 提供(Fekete&Plaisant,2002),©2002 IEEE。

23.8.4 地理

许多分析,例如流行病学,需要理解地理和非空间数据。图 23.26 显示了一种用于癌症人口统计数据集的可视化分析工具,结合了本章中描述的许多思想(MacEachren,Dai,Hardisty,Guo 和 Lengerich,2003)。链接视图的顶部矩阵包含三种类型的视觉编码的小多重视图:左下角显示阿巴拉契亚县的地理地图,矩阵对角线上是直方图,右上角是散点图。底部 2×2 矩阵将散点图与地图链接在一起,并包括两种颜色图例。离散双变量顺序彩色映射使得每个互补色调的轻度按顺序增加,并且对于色盲人士是有效的。

图 23.26。显示癌症人口统计数据的两个链接小多重视图矩阵(MacEachren 等,2003),©2003 IEEE。

23.8.5 空间场

大多数非地理空间数据被建模为一个场,其中每个 2D 或 3D 空间中的点都有一个或多个值相关联。例如,CT 或 MRI 医学成像扫描通常通过查找等值面或使用直接体渲染来可视化。例如水流或空气中的流动,则经常使用箭头、流线(McLouglin,Laramee,Peikert,Post 和 Chen,2009)和线积分卷积(LIC)(Laramee 等,2004)来进行可视化。张量场,例如描述分子在人类大脑中的各向异性扩散的场,特别具有挑战性。

常见问题解答

哪些会议和期刊是寻找更多关于可视化方面信息的好去处?

IEEE VisWeek 会议包括三个子会议:InfoVis(信息可视化)、Vis(可视化)和 VAST(视觉分析科学与技术)。还有一个欧洲 EuroVis 会议和一个亚太地区 PacificVis 场所。相关期刊包括 IEEE TVCG(可视化和计算机图形学交易)和 Palgrave 信息可视化。

可用于可视化的软件和工具包有哪些?

空间数据最流行的工具包是 vtk,一个可在 www.vtk.org 上获得的 C/C++代码库。对于抽象数据,基于 Java 的 prefuse(http://www.prefuse.org)和 Processing(processing.org)工具包越来越广泛地使用。IBM 研究的 ManyEyes 网站(www.many-eyes.com)允许人们上传自己的数据,在多种格式下创建交互式可视化,并进行有关视觉数据分析的对话。