第4章 数据可视化基础
4.1 数据可视化基本框架
数据可视化不仅是一门包含各种算法的技术,还是一个具有方法论的学科。因此,在实际应用中需要采用系统化的思维设计数据可视化方法与工具。本节通过对数据可视化的基本流程和可视化设计所遵循的多层次模型的讨论,介绍数据可视化的基本框架。
4.1.1 数据可视化流程
科学可视化和信息可视化分别设计了可视化流程的参考体系结构模型,并被广泛应用于数据可视化系统中。图4.1所示是科学可视化的早期可视化流水线 [Haber1990]。它描述了从数据空间到可视空间的映射,包含串行处理数据的各个阶段:数据分析、数据滤波、数据的可视映射和绘制。这个流水线实际上是数据处理和图形绘制的嵌套组合。
图4.1 科学可视化的早期可视化流水线。
图4.2展示了Card,Mackinlay和Shneiderman描述的信息可视化流程模型:将流水线改进成回路且用户的交互可以出现在流程的任何阶段。后继几乎所有著名的信息可视化系统和工具包都支持这个模型,而且绝大多数系统在基础层都兼容,只存在细微的实现差异,如图4.3和图4.4所示。
图4.2 由Card,Mackinlay和Shneiderman等人提出的信息可视化参考流程 [Card1999]。
图4.3 由Jark Van Wijk等人提出的可视化循环模型 [Wijk2008]。
图4.4 由C.Stolte等人提出的可视化循环模型 [Stolte2002]。
图片来源:http://www.tableausoftware.com
可视分析学的基本流程则通过人机交互将自动和可视分析方法紧密结合 [Tominski2006]。图4.5展示了一个典型的可视分析流程图和每个步骤中的过渡形式。这个流水线的起点是输入的数据,终点是提炼的知识。从数据到知识有两个途径:交互的可视化方法和自动的数据挖掘方法。两个途径的中间结果分别是对数据的交互可视化结果和从数据中提炼的数据模型。用户既可以对可视化结果进行交互的修正,也可以调节参数以修正模型。
图4.5 欧洲学者Daniel Keim等人提出的可视分析学标准流程 [Keim2008]。
在相当多的应用场合,异构数据源需要在可视分析或自动分析方法应用之前被整合。因此,这个流程的第一步需要将数据预处理并变换,导出不同的表达,便于后续的分析。其他的预处理任务包括数据清洗、数据规范、数据归类和异构数据源集成。
将数据进行变换后,分析人员可以在自动分析和可视分析方法之间选择:自动分析方法从原始数据中通过数据挖掘方法生成数据模型,进而分析人员交互地评估和改进数据模型;可视化界面为分析人员在自动分析方法基础上修改参数或选择分析算法提供了自由,通过可视化数据模型可增强模型评估的效率,帮助发现新的规律或做出结论。在一个可视分析学流水线中,允许用户在自动分析和交互可视分析方法之间进行自由搭配是最基本的要素,有利于迭代地形成对初始结果的逐步改善和结果验证,也可尽早发现中间步骤的错误结果或自相矛盾的结论,从而快速获得高可信度的结果。
在任意一种可视化或可视分析流水线中,人是核心的要素。一方面,机器智能可部分替代人所承担的工作,而且在很多场合比人的效率高;另一方面,人是最终的决策者,是知识的加工者和使用者,因此,数据可视化工具目标是增强人的能力,不能完全替代人的作用。如果可以设计一个全自动的方案,就不需要人的判断了,可视化也就失去了意义。在很多场合,问题十分复杂以至于难以定义,或难以通过机器智能解决。构建可视化工具提高日常工作的效率,就是可视化工具的意义所在。另外一些场合中,在方案实施之前需要人进行细化和扩充,或检查其效果并验证其正确性。这时,可视化可以作为监控与调试的一个临时性工具,而不是长期使用的必需工具。
数据可视化流程中的核心要素包括三个方面。
数据表示与变换
数据可视化的基础是数据表示和变换。为了允许有效的可视化、分析和记录,输入数据必须从原始状态变换到一种便于计算机处理的结构化数据表示形式。通常这些结构存在于数据本身,需要研究有效的数据提炼或简化方法以最大程度地保持信息和知识的内涵及相应的上下文。有效表示海量数据的主要挑战在于采用具有可伸缩性和扩展性的方法,以便忠实地保持数据的特性和内容。此外,将不同类型、不同来源的信息合成为一个统一的表示,使得数据分析人员能及时聚焦于数据的本质也是研究重点。
数据的可视化呈现
将数据以一种直观、容易理解和操纵的方式呈现给用户,需要将数据转换为可视表示并呈现给用户。数据可视化向用户传播了信息,而同一个数据集可能对应多种视觉呈现形式,即视觉编码。数据可视化的核心内容是从巨大的呈现多样性空间中选择最合适的编码形式。判断某个视觉编码是否合适的因素包括感知与认知系统的特性、数据本身的属性和目标任务。例如,图4.6显示了若干汽车品牌和所属国家,其中上图采用了柱状图的可视化形式。鉴于柱状图主要用于表达数值信息而不是分类信息,图中雪佛兰对应于纵轴上的中国、德国、美国等多个国家,这并不合理。而下图采用了散点图的形式,能够表达一一对应的关系,这样就避免了上图中所产生的错误信息。
大量的数据采集通常是以流的形式实时获取的,针对静态数据发展起来的可视化显示方法不能直接拓展到动态数据。这不仅要求可视化结果有一定的时间连贯性,还要求可视化方法达到高效以便给出实时反馈。因此不仅需要研究新的软件算法,还需要更强大的计算平台(如分布式计算或云计算)、显示平台(如一亿像素显示器或大屏幕拼接)和交互模式(如体感交互、可穿戴式交互)。
图4.6 汽车品牌和所属国家。上:错误的柱状图形式;下:正确的散点图形式。
用户交互
对数据进行可视化和分析的目的是解决目标任务。有些任务可明确定义,有些任务则更广泛或者一般化。通用的目标任务可分成三类:生成假设、验证假设和视觉呈现。数据可视化可以用于从数据中探索新的假设,也可以证实相关假设与数据是否吻合,还可以帮助数据专家向公众展示其中的信息。交互是通过可视的手段辅助分析决策的直接推动力。有关人机交互的探索已经持续很长时间,但智能、适用于海量数据可视化的交互技术,如任务导向的、基于假设的方法还是一个未解难题,其核心挑战是新型的可支持用户分析决策的交互方法。这些交互方法涵盖底层的交互方式与硬件、复杂的交互理念与流程,更需要克服不同类型的显示环境和不同任务带来的可扩充性难点。
4.1.2 数据可视化设计
数据可视化的设计简化为四个级联的层次 [Munzner2009(]见图4.7)。简而言之,最外层(第一层)是刻画真实用户的问题,称为问题刻画层。第二层是抽象层,将特定领域的任务和数据映射到抽象且通用的任务及数据类型。第三层是编码层,设计与数据类型相关的视觉编码及交互方法。最内层(第四层)的任务是创建正确完成系统设计的算法。各层之间是嵌套的,上游层的输出是下游层的输入,如图中的箭头所指。嵌套同时也带来了问题:上游的错误最终会级联到下游各层。假如在抽象阶段做了错误的决定,那么最好的视觉编码和算法设计也无法创建一个解决问题的可视化系统。在设计过程中,这个嵌套模型中的每个层次都存在挑战,例如,定义了错误的问题和目标;处理了错误的数据;可视化的效果不明显;可视化系统运行出错或效率过低。
图4.7 可视化设计的层次嵌套模型 [Munzner2009]。
分开这四个阶段的优点在于:无论各层次以何种顺序执行,都可以独立地分析每个层次是否已正确处理。虽然三个内层同属设计问题,但每一层又有所分工。实际上,这四个层次极少按严格的时序过程执行,而往往是迭代式的逐步求精过程:某个层次有了更深入的理解之后,将用于指导精化其他层次。
在第一层中,可视化设计人员采用以人为本的设计方法,与目标用户群相处大量时间,了解目标受众的需求。让用户自行描述平常的工作过程、思考实际需要,常常无法满足要求,因而需要采用有目标的采访或软件工程领域的需求分析方法。设计人员首先要了解目标用户的任务需求和数据属于哪个特定的目标领域。每个领域通常都有其特有的术语来描述数据和问题,通常也有一些固定的工作流程来描述数据是如何用于解决每个领域的问题的。在通常情况下,对特定领域工作流程特征的描述是一个详细的问题集或者用户收集异构数据的工作过程。描述务必要细致,因为这可能是对领域问题的直接复述或整个设计过程中数据的描述。在大多数情况下,用户知道如何处理数据,但难以将需求转述为数据处理的明确任务。因此,设计人员需要收集与问题相关的信息,建立系统原型,并通过观察用户与原型系统的交互过程来判断所提出方案的实际效果。
第二层将第一层确定的任务和数据从采用特定领域的专有名词的描述转化为更抽象、更通用的信息可视化术语的描述。将这些不同领域的需求转化为不依赖于特定领域概念的通用任务是可视化设计人员面临的挑战之一。例如,高层次的通用任务分类包括不确定性计算、关联分析、求证和参数确定等。与数据相关的底层通用任务则包括取值、过滤、统计、极值计算、排序、确定范围、提取分布特征、离群值计算、异常检测、趋势预测、聚簇和关联。而从分析角度看,通用任务包括识别、判断、可视化、比较、推断、配置和定位。在数据抽象过程中,可视化设计人员需要考虑是否要将用户提供的数据集转化为另一种形式,以及使用何种转化方法,以便于选择合适的可视编码,完成分析任务。
第三层是可视化研究的核心内容:设计可视编码和交互方法。视觉编码和交互这两个层面通常相互依赖。为应对一些特殊需求,第二层确定的抽象任务应被用于指导视觉编码方法的选取。第四层设计与前三个层次匹配的具体算法,相当于一个细节描述的过程。它与第三层的不同之处在于第三层确定应当呈现的内容以及如何呈现,而第四层解决的是如何完成的问题。当然,两层之间相互影响和制约。事实上,本书的大部分章节描述的内容对应于第三层和第四层。
将可视化设计的层次嵌套模型应用于实际的数据可视化系统设计,需要考虑各个层次面临的潜在风险和对风险的评估方法。由于层次之间互相嵌套,对各层次风险的检验不能即时完成。下面简单描述对各个层次潜在风险的评估方法。
● 第一层的首要问题是,用户可能根本不需要数据可视化来帮助解决问题。解决方法之一是采访和观察用户,定性地验证任务的实际内容;解决方法之二是调研相关软件或工具中数据可视化方法的实际使用率。
● 第二层的主要风险在于选定的任务和数据类型无法解决既定任务目标。检验的关键是由用户测试系统。方法之一是让目标用户试用工具,看工具是否能帮助发现新见解或证实了某些假设;方法之二是以一种长期的局部研究的方式观察并记录用户如何在日常工作中使用系统。
● 第三层的风险是选定的设计方法的视觉编码效果不佳。第一种方法是根据感知和认知理论判断设计是否合理。如果不确定可视化设计是否违反了某种指导原则,启发式评价和专家评审则可以有效地弥补这方面的缺陷。第二种方法是以用户实验的方式进行规范的用户研究,通过定量或定性分析统计结果或者用户偏好来检验所使用的设计方案的效率。第三种方法是向测试人员展示可视化结果(图像或视频),报告设计结果并做定性讨论。这类定性讨论有时以案例分析的方式展开,主要目的是确定工具是否对特定的任务和数据集有用。第四种方法是定量地评估可视化结果(图像或视频)。例如,应用可计算的美学标准、与标准结果比较差异等。
● 第四层的风险在于算法的性能和精度无法达到要求。方法之一是分析算法的计算复杂度,或测试算法的实际运行时间及内存开销。为了测试算法的正确性,可以通过输出可视化结果或计算某些统计量来完成。
4.2 可视化中的数据
数据可视化将数据变换为易于感知的可视编码。为了精准地通过数据的可视表达传播信息,需要研究数据的分类及其对应的可视编码方法。
4.2.1 数据认知
第3章介绍了数据模型和概念模型。人们对数据的认知,一般都经过从数据模型到概念模型的过程,最后得到数据在实际中的具体语义。数据模型是对数据的底层描述及相关的操作。在处理数据时,最初接触的是数据模型。例如,一组数据:7.8、12.5、14.3、…,首先被看作是一组浮点数据,可以应用加、减、乘、除等操作;另一组数据:白、黑、黄、…,则被视为一组根据颜色分类的数据。
概念模型是对数据的高层次描述,对应于人们对数据的具体认知。对数据进行进一步处理之前,需要定义数据的概念和它们之间的联系,同时定义数据的语义和它们所代表的含义。例如,对于7.8、12.5、14.3、…,可以从概念模型出发定义它们是某天的气温值,从而赋予这组数值特别的语义,并进行下一步的分析(如统计分析一天中的温度变化)。对于白、黑、黄、…,则可以表示为一组人群中的不同肤色。概念模型的建立跟实际应用紧密相关。例如,数值数据可用于表达温度、高度、产量等,而类别型数据则可表达性别、人种等不同的意义。
4.2.2 数据类型
根据数据分析要求,不同的应用可以采用不同的数据分类方法。例如,根据数据模型,可以分为浮点数、整数、字符等;根据概念模型,可以定义数据所对应的实际意义或者对象,例如汽车、摩托车、自行车等分类数据。在科学计算中,通常根据测量标度,将数据分为四类:类别型数据、有序型数据、区间型数据和比值型数据 [Stevens1946](见表4.1)。
表4.1 赛跑比赛排名数据
● 类别型数据:用于区分物体。例如,根据性别可以将人分为男性或者女性(表4.1中的性别);水果可以分为苹果、香蕉等。这些类别可以用于区分一组对象,但是无法提供对象的定量数据。例如,根据性别无法得到对象间的其他信息和联系,如年龄、男女比例等。
● 有序型数据:用来表示对象间的顺序关系。例如,根据成绩定义运动员的排名,跑得越快的运动员名次数越小——排名为“1”的运动员比排名为“2”的运动员跑得要快,依此类推。但是根据对象的顺序,并不一定能得到准确的定量比较。例如,在表4.1中,小赵的排名为“1”,小钱的排名为“2”,他们的排名差别为1。同样,小周和小吴之间的排名差别也是1。这两组之间的排名差别一样,但是小赵和小钱的跑步成绩差别并不一定等于小周和小吴间的差别。因此,我们只能得到对象间的顺序关系,而无法根据序数间的数值差别,对他们之间跑步成绩的差别进行定量比较。
● 区间型数据:用于得到对象间的定量比较。相对于有序型数据,区间型数据提供了详细的定量信息。例如,使用摄氏度来衡量温度,10℃和20℃的差别,与50℃和40℃的差别是一致的。但是,因为区间型数据基于任意的起始点,所以只能得到对象间的相对差别,并不能定义对象的绝对值。例如,温度计显示0℃,并不表明没有任何温度。
● 比值型数据:用于比较数值间的比例关系。比值型数据基于真正意义上的0点,可以用来精确地定义比例—— 4厘米的物体比2厘米的物体长2倍。表4.1中的跑步成绩属于比值型数据。
不同的数据类型适用不同的操作算子——区分度算子:=≠;序别算子:><;加减算子:+-;乘除算子:* /。类别型数据适用于区分度算子,可以判断不同数据之间是否相等,例如两种水果都是苹果,则认为它们是一类;如果其中一种是香蕉,则是不同类。有序型数据适用于区分度算子和序别算子,因此可以判断大小关系,例如表4.1中运动员的排名。区间型数据适用于区分度算子、序别算子和加减算子,例如计算温度差和年龄等。比值型数据适用于区分度算子、序别算子、加减算子和乘除算子。
不同的数据类型同时也对应不同的集合操作和统计计算。对于类别型数据集合,可以互换元素间的位置,统计类别和模式,也可以计算列联相关。对于有序型数据集合,可以计算元素间的单调递增(减)关系、中值、百分位数。对于区间型数据集合,可以进行元素间线性加减操作,计算平均值、标准方差等。对于比值型数据集合,由于基数为零,除上述三种数据类型所允许的操作外,还可以进行更复杂的计算,例如计算元素间的相似度,或者统计上的变异系数。表4.2总结了这些不同的数据类型及其所对应的操作计算。
表4.2 数据类型及其属性
在数据可视化中,我们通常并不区分区间型数据和比值型数据,将数据类型进一步精简为三种:类别型数据、有序型数据和数值型数据(包括区间型数据和比值型数据)。基础的可视化设计和编码一般针对这三种数据展开,复杂型数据通常是这三类数据的组合或变化。例如,第8章中介绍的网络与层次结构是一种有序型数据。
4.3 可视化的基本图表
统计图表是最早的数据可视化形式之一,作为基本的可视化元素仍然被非常广泛地使用。对于很多复杂的大型可视化系统来说,这类图表更是作为基本的组成元素而不可缺少。本节将介绍一些基本图表及其属性和适用的场景。通过这样的实例介绍,希望读者能对可视化设计所遵循的准则有所了解和认识。基本的可视化图表按照所呈现的信息和视觉复杂程度通常可以分为三类 [Cleveland1984]:原始数据绘图、简单统计值标绘和多视图协调关联。
4.3.1 原始数据绘图
原始数据绘图用于可视化原始数据的属性值,直观呈现数据特征,其代表性方法如下。
数据轨迹
数据轨迹是一种标准的单变量数据呈现方法:x轴显示自变量;y轴显示因变量。典型的例子有股票随时间的价格走势(见图4.8左图)。数据轨迹可直观地呈现数据分布、离群值、均值的偏移等(见图4.8右图)。
柱状图(Bar Chart)
柱状图采用长方形的形状和颜色编码数据的属性(见图4.9左图)。柱状图的每根直柱内部也可用像素图(Pixel Chart)方式编码(见图4.9右图),也称为堆叠图(Stacked Graph),详见多变量和高维数据可视化章节。
图4.8 单变量数据轨迹。左:股票K线图,时间是自变量,股指是因变量;右:Twitter舆情系统根据用词的褒贬程度对公司打分。这张图比较了2011年7月13日至17日美国网络影视服务和租赁商Netflix、Hulu和Redbox的分数,为多个数据集的单变量数据轨迹,日期是自变量,分数是因变量。
图片来源:http://flowingdata.com/2011/07/25/brand-sentiment-showdown/
图4.9 左:标准的柱状图;右:增强版柱状图(也称堆叠图),编码对比了几个国家不同年龄段人口数量。
直方图(Histogram)
直方图是对数据集的某个数据属性的频率统计(见图4.10)。对于单变量数据,其取值范围映射到横轴,并分割为多个子区间。每个子区间用一个直立的长方块表示,高度正比于属于该属性值子区间的数据点的个数。直方图可以呈现数据的分布、离群值和数据分布的模态。直方图的各个部分之和等于单位整体,而柱状图的各个部分之和没有限制,这是两者的主要区别。双直方图(见图4.11)是一种便于比较两个数据集的方法,其做法是将两个数据集的频率统计信息(即直方图)分别沿横轴对称呈现。直方图可以扩展到多维。例如,在科学可视化中,三维标量场数据通常采用标量值和标量值的梯度模为两个变量,生成二维直方图。
图4.10 不同的直方图分布形态。从上到下,从左到右:正态分布;对称、非正态、短尾分布;对称双正态;正态分布的双模态混合分布;斜右分布;对称、长尾、有离群值的分布。
图4.11 左:双直方图显示了batch 1数据集和batch 2数据的中心位置偏移了100,两者的分布形状和方差分布类似;右:左边是一个灰度图像,右边是该图的二维直方图统计(灰度值和灰度值梯度模)。可以明显看出数据分布在直方图统计空间中形成的特征模式。这个观察形成了三维体数据可视化的多维传输函数设计的理论基础 [Kindleman1998]。
饼图(Pie Chart)
饼图采用了饼干的隐喻,用环状方式呈现各分量在整体中的比例(见图4.12)。这种分块方式是环状树图等可视表达的基础。
图4.12 饼图实例,展示了某产品在各省的销售比例情况。
等值线图(Contour Map)
等值线图使用相等数值的数据点连线来表示数据的连续分布和变化规律。等值线图中的曲线是空间中具有相同数值(高度、深度等)的数据点在平面上的投影。平面地图上的地形等高线、等温线、等湿线等都是等值线图在不同领域的应用,如图4.13所示。
图4.13 二维高斯分布的立体图和平面等值线图。
走势图(Sparkline)
走势图是一种紧凑简洁的数据趋势表达方式 [Tufte2006],它通常以折线图为基础,大小与文本相仿,往往直接嵌入在文本或表格中。走势图使用高度密集的折线图表达方式来展示数据随某一变量(时间、空间)的变化趋势。由于尺寸限制,趋势图无法表达太多的细节信息。走势图常用于商业数据表达,如股票走势、市场行情等,如图4.14所示。
图4.14 使用走势图表达温度趋势,并将其直接嵌入文本中。
图片来源:[Tirronen2010]
散点图(Scatter Plot)和散点图矩阵(Scatter Plot Matrix)
散点图是表示二维数据的标准方法。在散点图中,所有数据以点的形式出现在笛卡尔坐标系中,每个点所对应的横纵坐标即代表该数据在坐标轴所表示维度上的属性值大小。
散点图矩阵是散点图的高维扩展,用来展现高维(大于二维)数据属性分布。可以通过采用尺寸、形状和颜色等来编码数据点的其他信息。对不同属性进行两两组合,生成一组散点图,来紧凑地表达属性对之间的关系,如图4.15所示。
图4.15 四维数据的散点图矩阵表示。左图为单个散点图区域的放大效果。
图片来源:http://blogs.sas.com/content/iml/2011/08/26/visualizing-correlations-between-variables-in-sas/
维恩图(Venn Diagram)
维恩图使用平面上的封闭图形来表示数据集合间的关系。每个封闭图形代表一个数据集合,图形之间的交叠部分代表集合间的交集,图形之外的部分代表不属于该集合的数据部分。维恩图在一张平面图表上表示集合间的所有逻辑关系,被广泛用于集合关系展示,如图4.16所示。
图4.16 四集合维恩图的不同画法。
图片来源:http://www.newscientist.com/gallery/venn
热力图(Heat Map)
热力图使用颜色来表达位置相关的二维数值数据大小。这些数据常以矩阵或方格形式整齐排列,或在地图上按一定的位置关系排列,每个数据点的颜色编码数值大小,如图4.17所示。
图4.17 使用热力图展示出租车的繁忙程度。
4.3.2 简单统计值标绘
盒须图是John Tukey发明的通过标绘简单的统计值来呈现一维和二维数据分布的一种方法。它的基本形式是用一个长方形盒子表示数据的大致范围(数据值范围的25%~75%),并在盒子中用横线标明均值的位置。同时,在盒子上部和下部分别用两根横线标注最大值和最小值。盒须图在实验数据的分析中非常有用。针对二维数据,标准的一维盒须图可扩充为二维盒须图(见图4.18、图4.19)。
图4.18 盒须图的标准表示(左图)及其若干变种。
图片来源:[Potter2010]
图4.19 自左至右:扩充的二维盒须图;Relplot;Rangefinder盒须图;Bag plot。
图片来源:[Potter2010]
4.3.3 多视图协调关联
多视图协调关联(Multiple Coordinated Views)将不同种类的绘图组合起来,每个绘图单元可以展现数据某个方面的属性,并且通常允许用户进行交互分析,提升用户对数据的模式识别能力。在多视图协调关联应用中,“选择”操作作为一种探索方法,可以是对某个对象和属性进行“取消选择”的过程,也可以是选择属性的子集或对象的子集,以查看每个部分之间的关系的过程。图4.20展示了MizBee可视化系统 [Meyer2009],该系统成功地将多视图协调关联应用于探索式基因可视分析过程中。
图4.20 用于比较多尺度线粒体的基因数据的可视化系统MizBee的界面 [Meyer2009]。
图片来源:http://www.cs.utah.edu/~miriah/mizbee/Overview.html
图4.21总结了根据分析需求可采用的统计可视化方法。
图4.21 基本的统计图表可视化方法和适用规则。
4.4 可视化设计原则
可视化的首要任务是准确地展示和传达数据所包含的信息。在此前提下,针对特定的用户对象,设计者可以根据用户的预期和需求,提供有效辅助手段以方便用户理解数据,从而完成有效的可视化。在给定数据来源之后,目前已经有很多不同的技术方法将数据映射到图形元素并进行可视化,同样也存在不少用户交互技术方便用户对数据的浏览与探索。
过于复杂的可视化可能会给用户带来理解上的麻烦,甚至可能引起用户对设计者意图的误解和对原始数据信息的误读;缺少直观交互控制的可视化可能会阻碍用户以主观上更直观的方式获得可视化所包含的信息;另外,美学因素也能影响用户对可视化设计的喜好或厌恶情绪,从而影响可视化作为信息传播和表达手段的功能。总之,良好的可视化提高了人们获取信息的能力,但是也有诸多因素会导致信息可视化的低效率甚至失败。因此,了解并掌握可视化技术的各个组件的功能,对设计有效的可视化有着重要的作用。
本节将提供一些用于设计有效的可视化的指导思路和原则,以便读者在实际的可视化设计中能够遵循并从中获益。设计制作一个可视化视图包括三个主要步骤:确定数据到图形元素(即标记)和视觉通道的映射;视图的选择与用户交互控制的设计;数据的筛选,即确定在有限的可视化视图空间中选择适当容量的信息进行编码,以避免在数据量过大情况下产生的视觉混乱,也就是说,可视化的结果中需要保持合理的信息密度。为了提高可视化结果的有效性,可视化的设计还包括颜色、标记和动画的设计等。
4.4.1 数据到可视化的直观映射
在选择合适的数据到可视化元素(标记和视觉通道)的映射时,设计者首先需要考虑的是数据的语义和可视化用户的个性特征。一般而言,可视化的一个核心作用是使用户在最短的时间内获取数据的整体信息和大部分细节信息,这通过直接观察数据显然无法完成。如果设计者能够预测用户在观察使用可视化结果时的行为和期望,并以此指导自己的可视化设计过程,则可以在一定程度上帮助用户对可视化结果的理解,从而提高可视化设计的可用性和功能性。
数据到可视化元素的映射需充分利用已有的先验知识,从而降低人们对信息的感知和认知所需要的时间。本章4.2节介绍了基本的数据类型(类别型数据、有序型数据和数值型数据)的属性及其操作;4.3节介绍了基本的可视化图表。对于基本数据类型,可以通过使用不同的视觉编码通道来表达数据及其之间的关系(见图4.22)。
图4.22 基本数据类型适用的可视化编码方式,优先级自上而下。
实际应用中的数据通常是基础数据类型的实例和组合,其可视化方法一般为采用基于不同视觉编码通道的组合。如图4.23所示的可视化设计使用的是散点图,在点标记的选择上设计者使用了众所周知的一些纹理贴图以表示不同的行星,用横轴表示距离,纵轴表示公转时间,同时使用了标签对各行星的数据进行标注。可视化所包含的信息一目了然,例如,大部分用户对于地球所代表的点的识别是非常直观而快速的。这是因为,在用户普遍所具备的先验知识中,蓝色和白色分别表示地球的海洋和云彩,“地球”字体的加粗显示更加快了认知速度。
图4.23 使用散点图的形式可视化行星到太阳的距离和行星公转时间。
对于空间属性,如纬度和经度,将其映射到空间位置是最常用也是最直观的数据映射方式。如果两种数据属性存在时间上的关联,则可以使用动画对其进行可视化。由于在许多文化中存在冷暖色调的传统,将温度或密度映射为颜色直观易懂。
数据到可视化的映射还要求设计者使用正确的视觉通道去编码数据信息。对于类别型数据属性,务必使用类别型视觉通道;对于有序型数据属性,也需要使用定量/定序的视觉通道进行编码。然而,可视化系统也可以向用户提供一些灵活特性。例如,在流线可视化中将时间映射为颜色虽然并不是直观的映射,但这样的方式却可以解释流线上粒子运动速度的变化。另一方面,将时间和空间分别映射为横轴和纵轴,也可以呈现时空演化的事件(见图4.24)。
图4.24 复活节前一周耶稣活动记录的可视化(部分)。全周时间沿横轴从左到右布局,灰色长方块区域表现了空间,不同颜色的管道线的位置远近编码了人物之间的互动。
图片来源:http://bg3-blog.s3.amazonaws.com/blog/wp-content/uploads/2011/04/holy-week-timeline.png
4.4.2 视图选择与交互设计
对于简单的数据,使用一个基本的可视化视图就可以展现数据的所有信息;对于复杂的数据,就需要使用较为复杂的可视化视图,甚至为此发明新的视图,以有效地展示数据中所包含的信息。一般而言,一个成功的可视化首先需要考虑的是被用户所广泛认可并熟悉的视图设计。此外,可视化系统还必须提供一系列的交互手段,使得用户可以按照自己满意的方式修改视图的呈现形式。不管使用一个视图还是多个视图的可视化设计,每个视图都必须用简单而有效的方式(如通过标题标注)进行命名和归类。
视图的交互主要包括以下一些方面。
● 滚动与缩放:当数据无法在当前有限的分辨率下完整展示时,滚动与缩放是非常有效的交互方式。
● 颜色映射的控制:调色盘是可视化系统的基本配置。同样,允许用户修改或者制作新的调色盘也能增加可视化系统的易用性和灵活性。
● 数据映射方式的控制:在可视化设计时,设计者首先需要确定一个直观且易于理解的数据到可视化的映射。虽然如此,在实际使用过程中,用户仍有可能需要转换到另一种映射方式来观察他们感兴趣的其他特征。因此,完善的可视化系统在提供默认的数据映射方式的前提下,仍然需要保留用户对数据映射方式的控制交互。如图4.25所示的可视化使用了两种不同的数据映射方式展示了同一个数据。
● 数据缩放和裁剪工具:在对数据进行可视映射之前,用户通常会对数据进行缩放并对可视化数据的范围进行必要的裁剪,从而控制最终可视化的数据内容。
● LOD控制:细节层次(Level-Of-Detail)控制有助于在不同的条件下,隐藏或者突出数据的细节部分。
总体上,设计者必须要保证交互操作的直观性、易理解性和易记忆性。直接在可视化结果上的操作比使用命令行更加方便和有效,例如,按住并移动鼠标可以很自然地映射为一个平移操作,而滚轮可以映射为一个缩放操作。
图4.25 对一个四维数据的两种可视化方法:散点图和平行坐标。
4.4.3 信息密度——数据的筛选
在确定了数据到可视化元素的映射和视图与交互的设计后,信息可视化设计的另一个关键挑战是:设计者必须决定可视化视图所需要包含的信息量。一个好的可视化应当展示合适的信息,而不是越多越好。失败的可视化案例主要存在两种极端情况,即过少或过多地展示了数据的信息。E.Tufte用数据-墨水比衡量信息可视化的表达效果 [Tufte1986]。
第一种极端情况是可视化展示了过少的数据信息。在实际情况中,很多数据仅包含了两到三个不同属性的数值,甚至这些数值可能是互补的,即可由其中的一个属性的数值推导出另外一个,例如男性和女性的比例(如果相加起来是100%),在这些情况下,直接通过表格或文字描述即可完整而快速地传达信息,并且还能省下不少版面空间。总之,需要记住的是,可视化只是辅助用户认识和理解数据的工具,可视化过少的数据信息并不能给用户对数据的认识和理解带来好处。
第二种极端情况是设计者试图表达和传递过多的信息。包含过多信息会大大增加可视化的视觉复杂度,也会使可视化结果变得混乱,造成用户难以理解、重要信息被掩藏等弊端,甚至让用户自己都无法知道应该关注哪一部分。
因此,一个好的可视化应向用户提供对数据进行筛选的操作,从而可以让用户选择数据的哪一部分被显示,而在需要的时候才显示其他部分。另外一种解决方案是通过使用多视图或多显示器,将数据根据它们的相关性分别显示。
4.4.4 美学因素
在可视化设计中,仅仅完成上述三个步骤仍然无法形成有效的可视化,用户可能仍然无法从可视化结果中获取足够的信息,以判断和理解可视化所包含的内容。例如,在没有任何标注的坐标轴上的点,用户既不知道每个点的具体的值,也不知道该点所代表的具体含义。解决这一问题的做法是给坐标轴标记尺度,然后给相应的点标记一个标签以显示其数据的值,最后给整个可视化赋以一个简洁明了的题目。例如,图4.26左图只是简单地完成了数据到可视化(位置和颜色)的映射,然而在用户看来,它仅仅是几条不同颜色的曲线;右图则是一个较完整的可视化,通过增加坐标轴、颜色和尺寸等的标注和说明,用户就能知道这10条曲线的信息含义。另外,设计者通过在水平和竖直方向增加均匀分割的网格线,提高用户对该可视化中曲线上的点所表示的数值进行相对比较时的精度。
图4.26 一个不完整的可视化结果与一个完整的可视化结果,在不完整(左图)的可视化结果中,用户无法得知这几条曲线的意义。
设计者需要认真仔细地对待可视化设计中的网格及其标注。图4.27展示了网格及其标注是否被合理使用的例子。在图4.27(a)和(c)中,分别由于网格的过多使用和过少使用,使得可视化结果在缺少数据表达的精确性的同时也缺失了美观性,而图4.27(b)中通过网格的合理使用,数据所映射的点能够被用户很好地理解。另外,网格所表示的区间的均匀性对于用户对可视化的理解也非常重要,图4.28左图所示的可视化结果中由于设计者使用了不均匀的网格间距(横轴)和非零的起始位置(纵轴),使得用户对可视化结果的理解很难忠于原始数据所包含的信息。
图4.27 网格及其标注的合理使用例子。过于稠密的网格(左)和过于稀疏的网格(右)都不利于用户对于数据的理解。特别地,当网格稠密到一定程度后,用户将无法分辨可视化结果中的数据所表示的点。数据为IRIS(http://davis.wpi.edu/xmdv/datasets/iris.html)的其中两个维度。
图4.28 网格间距的正确使用例子。使用非均匀的网格间距可能会导致用户对于数据的误读,例如,某一区间的数据斜率将无法通过线段的倾斜程度进行理解和比较。
在可视化中,颜色是使用最广泛的视觉通道,也是经常被过度甚至错误使用的一个重要的视觉参数。使用了错误的颜色映射表或者试图使用很多不同的颜色表示大量数据属性,都可能导致可视化结果的视觉混乱,因而都是不可取的。另外,由于人的感知判断是基于相对判断的,特别对颜色的感知尤其如此,因此在进行颜色选取的时候也需要特别谨慎。在某些可视化领域,可视化的设计者还需要考虑色觉障碍用户的因素,使得可视化结果对这些用户依然能够起到信息表达与传递的功能。
可视化设计者通过仔细的设计完成可视化的功能(向用户展示数据的信息)后,就需要考虑其形式表达(可视化的美学)方面的改进。可视化的美学因素虽然不是可视化设计的最主要目标,但是具有更多美感的可视化设计显然更加容易吸引用户的注意力,并促使其进行更深入的探索,因此,优秀的可视化必然是功能与形式的完美结合。在可视化设计的方法学中,有许多方法可以提高可视化的美学性,总结起来主要有以下三种。
● 聚焦:设计者必须通过适当的技术手段将用户的注意力集中到可视化结果中的最重要区域。如果设计者不对可视化结果中各元素的重要性进行排序,并改变重要元素的表现形式使其脱颖而出,则用户只能以一种自我探索的方式获取信息,从而难以达到设计者的意图。例如,在一般的可视化设计中,设计者通常可以利用人类视觉感知的前向注意力,将重要的可视化元素通过突出的颜色编码进行展示,以抓住可视化用户的注意力。
● 平衡:平衡原则要求可视化的设计空间必须被有效地利用,尽量使重要元素置于可视化设计空间的中心或中心附近,同时确保元素在可视化设计空间中的平衡分布。在图4.29中,左图的可视化设计将主要的可视化元素置于视图空间的右上角,违背了平衡原则。
● 简单:简单原则要求设计者尽量避免在可视化中包含过多的造成混乱的图形元素,也要尽量避免使用过于复杂的视觉效果(如带光照的三维柱状图等)。在过滤多余数据信息时,可以使用迭代的方式进行,即过滤掉任何一个信息特征,都要衡量信息损失,最终找到可视化结果美学特征与传达的信息含量的平衡。
图4.29 可视化元素的平衡分布。左图中,点几乎分布在可视化视图中的右上角,缺失了平衡性,影响了视图的美观。数据集和图4.27展示的数据一致。
4.4.5 动画与过渡
信息可视化的结果主要以两种形式存在:可视化视图与可视化系统。前者通常是图像,是相关人员进行交流的载体形式;后者则创建了一个终端用户(包括设计者和一般用户)与数据进行交互的系统环境,使得用户可以根据自己的意图选择合适的可视化映射和可视化信息密度,并通过系统提供的交互生成最终的可视化视图或可视化视图序列。
动画与过渡效果是可视化系统中常用的技术,它通常被用于增加可视化结果视图的丰富性与可理解性,或增加用户交互的反馈效果。例如,对于时变的科学数据,采用科学可视化方法逐帧绘制每个时刻的数据,可重现动态的物理或化学演化规律 [Hansen2004]。在可视化系统中,动画与过渡效果的功能可概括如下。
1.用时间换取空间,在有限的屏幕空间中展示更多的数据
在时序数据的可视化中,数据值随时间变化。如果每一时刻仅包含一个维度,该维度和时间维度则可以组成一个二维空间,用类似坐标轴的方式编码数据值,其中横轴代表时间的渐变。当数据包含多个维度时,需要通过多个视觉通道编码不同的维度信息,此时如果采用动画的方式编码随着时间演进而产生的数据值变化,则可以在有限的视图空间上展示更多的信息,同时也确保任何单一时刻时可视化结果对有限视图空间的充分利用。图4.30展示了类似GapMinder软件(http://www.gapminder.org)可视化效果的动画序列的其中4帧,呈现了75个国家在25年中平均寿命和婴儿平均死亡率的关系变化。可以看到,随着时间的推进,散点图上的每个点都往右下角移动(更高的平均寿命和更低的婴儿死亡率)。很显然,如果在有限的视图空间中展示这25年所包含的数据,得到的可视化结果将显得非常拥挤,甚至产生大量的重叠(见图4.31)。此外,即使使用静态的可视化编码,时序数据也不是问题,动画效果也能在一定程度上展示时序效果,并从一定程度上引起观察者的注意力。
图4.30 散点图可视化视图动画序列的其中4帧,展示了75个国家在1975、1985、1995和2000年的平均寿命(横轴)和婴儿平均死亡率(纵轴)的关系与变化。点的大小表示人口数量,颜色编码不同的洲。最大的两个点表示中国和印度。
图片来源:[Steele2010]
图4.31 在单个可视化视图中展示75个国家在25年中平均寿命(横轴)和婴儿平均死亡率(纵轴)的关系与变化,其中时间线索使用颜色的不透明度进行编码,时间越近不透明度越高。
图片来源:[Steele2010]
2.辅助不同可视化视图之间的转换与跟踪,或者辅助不同可视化视觉通道的变换
如果数据包含的信息量多且是必需的,那么设计者通常会设计多个视图用于展示数据的信息,用户在浏览可视化数据的过程中则需要在不同的视图之间进行切换,使用动画效果辅助视图切换过程有助于用户跟踪在不同可视化视图中出现的相同元素。另一方面,设计者希望在两个时刻采用同一个具有较强表现力的视觉通道以强调不同的数据属性,且不同的数据属性之间互为上下文信息,此时如果采用动画切换技术,则可以减轻视图变换给用户带来的“冲击”,避免用户在转换的过程中迷失,方便用户跟踪数据的信息。图4.32展示了从柱状图过渡成饼图的动画序列的几帧截图,通过动画过渡技术,用户可以很容易地察觉到柱状图中的每个柱条与饼图中的相应扇形块之间的对应,并因此避免了两种可视化编码切换所带来的视觉“冲击”。
图4.32 从柱状图过渡成饼状图的动画过渡技术 [Heer2007]。
3.增加用户在可视化系统中交互的反馈效果
在可视化系统中,用户的交互总是期望获得系统的反馈。不管用户的交互所带来的系统计算量的大小,实时的反馈效果有助于用户获得对其所做操作的确认,以避免用户盲目地重复操作。例如,对于计算量非常大的操作,一个简单的进度条即可让用户获得确认。当用户移动鼠标经过散点图的某个点时,物体在很短的时间内(200ms)产生一个光晕动画,则通常表示该物体能被点选或进行其他操作。
4.引起观察者注意力
动画作为视觉通道包括了运动的方向、运动的速度和闪烁的频率等。由于闪烁等动画效果很难被人眼忽视,因此,当有特别重要的信息需要被观察者捕捉时,对标记进行闪烁是一个不错的选择。也正因为如此,在可视化中动画作为视觉通道必须小心谨慎地使用。
尽管动画有上面提到的这些功能,但是不少用户研究的结果仍然表明,在可视化系统中采用动画对可视化结果的总体表达可能没有益处,甚至会削弱可视化的效果,降低观察者对信息的获取速度和精度 [Robertson2008],因此在可视化中运用动画与过渡技术也必须谨慎。可视化的使用者主要分为两类:一类被认为是数据的探索者,他们通常对数据的情况并不清楚,期望直接控制可视化系统的交互;另一类是数据的展示者,他们已经对数据了如指掌,并且数据通常经过了一定的处理,而观者此时是被动地接受信息。这两类使用者对于可视化系统的任务需求也存在差别,前者需要更多的交互和多维度分析,以期找出数据的特征;后者则利用可视化展示已获取的数据特征,并表达自己的观点。比较而言,数据的探索者不希望动画干扰其对数据的分析过程,因此,可视化系统的设计必须考虑到这两类用户的需求,并进行折中处理。
Tversky等人 [Tversky2002]指出了动画与过渡运用的两个指导性准则,即要求最终的可视化仍然满足一致性和易理解性要求。前者指可视化视图中的标记在动画过程中仅编码一个数据或数据维度;后者要求带有动画的可视化必须容易被用户理解。
4.4.6 可视化隐喻
在解释或者介绍人们不熟悉的事物和概念的时候,常常将其与一个人们所熟悉的事物进行比较来帮助理解,这样的手法称为隐喻(Metaphor)。隐喻的设计包含三个层面:隐喻本体、隐喻喻体和可视化变量。本体和喻体之间存在某种关联或相似性。如果本体和喻体具有不同的模态(语言、视觉、步态等),隐喻也称为多模态隐喻。广告业、卡通和电影常用隐喻的手法表达其主题。
在可视化中也常常使用这样的方法,将需要介绍的事物和概念用人们所熟知的事物的视觉形态来呈现。时间隐喻和空间隐喻是可视化隐喻中最常见的两类方式。选取合适的源域和喻体表示时间与空间概念,能创造最佳的可视和交互效果。例如,图4.33展现了采用咖啡杯、水汽和颜色对不同种类咖啡的成分的可视化隐喻效果。
图4.33 在堆叠柱状图的基本可视化编码上采用咖啡杯、标记和颜色生成各种咖啡的可视化隐喻,生动地展现了不同种类咖啡的水、牛奶、Espresso等的比例。
4.4.7 颜色与透明度
颜色在数据可视化领域通常被用于编码数据的分类或定序属性。在第2章介绍的色彩空间中(除了CMYK色彩空间),颜色通常采用三个分量值进行表示,因此在同一个可视化视图中,每个像素或点的颜色仅有可能代表一种数据编码规则,即要么属于定性数据属性的某一类,要么属于定量或定序数据属性的某一个值或值的区间。当颜色的两种数据编码规则在用户所见的视图空间中存在相互遮挡时,可视化的设计者必须从中选择一种予以显示。为了便于用户在观察和探索数据可视化时从整体进行把握,可以给颜色增加一个表示不透明度的分量通道,通常称为α通道,用于表示离观察者更近的颜色对背景颜色的透过程度。当颜色的α值为1时,表示不透过任何背景颜色,即颜色是不透明的;当颜色的α值为0时,表示该颜色是透明的;当颜色的α值介于0和1之间时,表示该颜色可以透过一部分背景的颜色,从而实现当前颜色和背景颜色的混合,创造出可视化的上下文效果。
在颜色混合的计算中,颜色被表示成一个(r,g,b,α)四元变量,其中r,g,b分别表示一种颜色的红、绿、蓝分量的值,而α则表示该颜色的不透明度分量的值。在可视化视图中,当两种颜色在一个区域内重叠时,该区域内的颜色为:(r,g,b)=(r1,g1,b1)*α1+(r2,g2,b2)*α2*(1-α1)。其中(r1,g1,b1)和(r2,g2,b2)分别表示当前颜色和背景颜色的红、绿、蓝分量的值,α1和α2分别表示当前颜色和背景颜色的不透明度分量的值。
颜色混合效果可以为可视化视图提供数据可视化的上下文内容信息,方便观察者对于数据全局的把握。例如,在三维体数据可视化中,直接体绘制中的光线投射算法就是通过累积每个像素对应的虚拟光线穿过的体素的颜色值实现的,其中的累积就是颜色混合的操作。颜色混合同样可以在一定程度上避免两种数据编码规则的遮挡问题,便于观察者抓住数据的特征。在可视化交互中,当用户通过交互方式移动一个标记而未将其就位时,颜色混合所产生的半透明效果可以给用户非常直观的操作感知,从而可以提高用户的交互体验。
由于RGB色彩空间不符合人们一般对颜色的感知方式,通过上式得到的新的颜色在HSL/HSV色彩空间中的色调值可能会不同于参与计算的两种颜色,从而容易导致颜色的色调视觉通道在编码分类数据上的失效,因此在信息可视化中应当特别慎用颜色混合。
4.5 可视化理论发展
研究者发明并实践了很多可视化技术和方法,但是可视化还是一门相对比较年轻的研究领域。人们对于可视化元素,例如图形和编码,有基本的了解和概念。但是对于一门学科而言,目前可视化还处于发展阶段,研究者在不断探索和发展可视化理论,试图建立不同的模型,对可视化进行规则的描述。本节列举了一系列具有代表性的工作。
4.5.1 图形符号学
1967年,Jacques Bertin出版了Semiology of Graphics(《图形符号学》)一书,并于1983年出版了英文版本 [Bertin1983]。Bertin使用符号学来描述图形,提出了信息的可视化编码原则,并严格地定义了二维图形及其对信息的表达过程。他将图形系统严格区分为内容(所要表达的信息和数据)和载体(图形符号)。因此,图形系统的定义建立在对图形符号的不同属性的理解和定义的基础之上。
在此框架下,图形(可视化)由传输不同信息的图形符号组成。图形符号可以为点、线和面。图形符号用视觉变量描述,包括位置变量和视网膜变量。位置变量定义了图形在二维平面上的位置。视网膜变量包括尺寸、数值、纹理、颜色、方向和形状(见表4.3)。
表4.3 Bertin的图形词汇 [Bertin1983]
在Bertin的图形系统框架下,可视化由在二维平面上绘制的点、线或面组成。这些基本元素进而可组成更高级的形式,例如图形、网络、地图和符号。基于这些组合可产生各类图形的视网膜变量。在此基础上,视网膜变量可以表达不同层次的组织,且变量之间存在关联性、选择性、有序性和定量性。
● 关联性:根据属性可找出图形符号间的对应关系,并且对其进行分类。
● 选择性:根据属性可找出图形符号所属的类别。
● 有序性:根据属性可对图形符号进行排序。
● 定量性:根据属性可从图形符号推导出比例关系或者距离。
表4.4显示了不同视网膜变量对应的层次组织。对于不同的信息,可以根据其相应的属性,选择采用适当的图形符号及设定其视网膜变量。
表4.4 视觉属性的组织层次 [Bertin1983]
4.5.2 关系数据的图形表示
1986年,Mackinlay提出了一种可从数据库中自动提取信息并用图形方式显示的技术 [Marckinlay1986]。和Bertin的理论相似,这种可视化技术采用二维静态表达方式,如散点图和网络图。区别在于Mackinlay试图用图形语言描述和定义可视化的表达——一个句子s由一系列的元组组成:s⊂{<o,l>:o∈O ∧ l∈L}。其中,O代表一组图形对象,L代表位置,每个元组代表一个在具体位置的图形对象。这样图形语言可以定义为图形句子的集合。
基于Cleveland和McGill的感知实验 [Cleveland1984],Mackinlay提出:图形语言需要满足表达性和有效性。其中,表达性指图形语言必须能够表达所需的信息;有效性指对于给定情况,图形语言必须有效地使用显示介质和人的视觉系统。
Mackinlay提出了一套基本的图形语言和组合算子,在这些元素的基础上可通过运算构造出更高级的图形表达。基于Bertin的理论,Mackinlay提出了新的图形词汇(见表4.5)和初级图形语言的基组(见表4.6),并定义了三个用于合并两个表达相同信息的图形句子(即图形对象)的原则。
● 双轴合并:合并的图形句子具有相同的横轴和竖轴。
● 单轴合并:对齐图形句子中相同的横轴或者竖轴。
● 图形合并:对齐图形句子中的图形。
表4.5 Mackinlay的图形词汇
表4.6 Mackinlay的初级图形语言的基组
与Bertin类似,Mackinlay也试图根据数据类型定义合适的视觉通道。Mackinlay的创新之处在于进一步提出了表达性和有效性原则,并且提供了更为严格的图形语言描述。
4.5.3 图形语法
Wilkinson提出了一种底层统计图形生成语言,可用于构造不同类型的统计图形 [Wilkinson2005]。与Mackinlay的思想类似,Wilkinson通过语法构造生成复杂的图形,即以自底向上的方式组织最基本的元素形成更高级的元素。图形的构造过程分为三个阶段:规范定义、组装和显示。其中,规范定义是整个语法的基础,描述了不同图形对象间的转变和最终图形显示映射。
整个语法规范由7个部分组成(见表4.7)。其中,数据和转换定义在数据空间;框架、标度和坐标定义了底层的图形几何和数据的空间位置;图形定义了不同的图形对象。与Bertin和Mackinlay的定义类似,Wilkinson也定义了标准图形和美学属性,见表4.8。其中,标准图形对应于Bertin的图形符号,美学属性对应于Bertin的视网膜变量。当合并多个美学属性时,需要考虑视觉感知,但并不考虑它的表达性和有效性。
表4.7 Wilkinson的语法规范
表4.8 Wilkinson的美学属性
Wilkinson提出了两个重要的可视化概念。
● 数据和它们的视觉表达应该被区分。本质上,图形语法中的规范定义了从数据点到美学属性的映射(类似于Bertin的内容和载体的分离)。
● 可应用不同的算子构造数据变量的可视化。其主要思想是,可采用融合(+)、叉乘(*)、嵌套(/)等算子从各类数据变量出发定义复杂的图形空间,并通过缩放映射到显示视图。这些算子应支持不同维度数据的复杂操作。
Wilkinson的方法刻画了可视化的数学表达和图形属性之间的区别。基于这套理论开发的面向对象的软件,已经证明了利用图形语法生成数据可视化的可行性。
4.5.4 基于数据类型的研究
Shneiderman从数据类型出发研究信息可视化过程,将数据分为7类 [Shneiderman1996]。
● 一维:一维数据指由字母或文字组成的线性数据,如文本文件、程序源代码等。数据以序列的方式组织,其中的每一项是包含字符串的文本行,并且可能附加一些其他属性,例如日期或作者。可视化设计主要针对文字,选择字体、颜色、大小和显示方式。用户需求一般是搜索文本或者数据项,以及相关属性。
● 二维:二维数据主要是平面或地图数据,例如地理地图、平面图或报纸版面等。数据集中的每一项对应于二维平面上的某些区域,可能是规则或不规则的形状。每个区域附加多种属性,例如名称、所有者、数值等,以及一些其他特征,如大小、颜色、透明度等。用户需求一般是搜索某些区域、路径、地图放大或缩小、查询某些属性等。
● 三维:三维数据指三维空间中的对象,例如分子、人体以及建筑物。数据集主要包含三维对象和对象之间的关系,例如计算机辅助设计系统制作的三维模型。用户需求主要是了解对象的属性和对象间的关系。与低维度数据不同,对象包括了位置和方向等三维信息,显示这些对象需要使用不同的透视方法,设置颜色、透明度等参数。
● 时间:时间数据广泛存在于不同的应用中,例如医疗记录、项目管理或历史介绍。数据集中的每一项包含时间信息,如开始和结束时间。用户潜在的需求是搜索在某些时间或时刻之前、之后或之中发生的事件,以及相应的信息和属性。
● 多维:多维数据中的每一项数据拥有多个属性,可以表示为高维空间的一个点。该类数据常见于传统的关系或统计数据库应用中。用户需求包括寻找特征、聚类、变量之间的相关性、差距以及离群值等。可视化设计可以基于二维散点图,对每个维度增加滑块控制 [Christopher1994]。当维度相对比较小的时候,例如小于10,属性可以对应于不同的按钮。多维数据也可由三维散点图表示,但是可能造成信息阻塞等问题。
● 树:表示层次关系。在树结构中,每一项数据可以连接到另一个父项(除了根节点)。每个数据项,以及父项和子项之间的连接,可以有多种属性。基于这些数据项和之间的连接,可定义不同的分析任务,如统计树的层数、每一个数据项的子项数目。
● 网络:表达连接和关联关系。与树数据类似,数据项和连接关系可以有多种属性,并定义一些基本任务。节点连接图以及连接矩阵是常见的网络可视化形式。
本书的组织架构和描述方式与这种数据分类方式相对应。
4.5.5 基于数据状态模型的研究
大多数研究以数据为中心来构建信息可视化技术。与这些研究不同,Chi[Chi2000]从数据状态模型(Data State Model)出发,将可视化技术分解为四个数据转换阶段和三种数据转换操作。不同阶段分别对应不同的算子。图4.34显示了信息可视化的数据状态参考模型。整个可视化流程,被分成四个不同的数据阶段:数值、分析抽象表达、可视化抽象表达和视图(见表4.9)。三种数据转换操作为:数据转换、可视化转换和视觉映射转换(见表4.10)。将数据从一个阶段转换至另一个阶段,需要从这三种数据转换操作中选择一种。
图4.34 信息可视化的数据状态参考模型 [Chi2000]。
表4.9 数据状态模型的四个数据阶段 [Chi2000]
表4.10 三种数据转换操作 [Chi2000]
每个数据阶段拥有不同的算子。与数据转换操作不同,这些算子并不改变基础数据结构。对应四个数据阶段,这些算子为:数值算子、分析算子、可视化算子和视图算子。
整个可视化过程可分解成不同的部分。分析和构建它们之间的依赖关系,进而可重组这些部分,构建新的可视化技术。因此,这个模型可以用于区分不同的可视化技术。Chi使用该模型分析了36种可视化技术,列出了它们详细的数据阶段、阶段转换和阶段内操作。
4.5.6 多维关系数据库可视化分析系n统
Polaris系统 [Stolte2002]可支持大规模多维关系型数据库的查询、分析和可视化,完成关系型数据库中的主要挑战:发现结构和模式,获得因果关系。Polaris提供了针对关系型数据库的接口,可快速递增式地生成图表式可视化。图表的结构跟关系型数据库一致,包括行、列和层。表格的每个轴对应于多个维度,每个表格单元包含数据库的一条记录,并可直接被可视化。p
与Wilkinson的工作类似,Polaris系统也支持不同的算子,如连接、叉乘和嵌套,支持数据和图形的运算。Polaris支持关系型数据模型,而Wilkinson的模型并不支持关系模型,在生成统计图可视化中有一定的局限性。
在实现可视化映射时,Polaris系统采用了类似Bertin的视网膜变量的思路,定义了四种视觉变量:形状、尺寸、方向和颜色 [Stolte2002]。在将数据点映射到图形时,系统基于数据的类别、顺序和数值特性,自行匹配合适的视觉变量,如表4.11所示为Polaris使用的视觉变量和可视化编码 [Stolte2002]。
表4.11 Polaris使用的视觉变量和可视化编码 [Stolte2002]
参考文献
[Bertin1983]J.Bertin.Semiology of Graphics: Diagrams,Networks,Maps.Madison,WI:University of Wisconsin Press.1983
[Card1999]S.K.Card,J.Mackinlay,B.Shneiderman.Readings in information visualization:using vision to think.Morgan Kaufmann Publishers Inc.,San Francisco,CA,USA.6(4),1999:93
[Chi2000]E.H.Chi.A taxonomy of visualization techniques using the data state reference model.IEEE Symposium on Information Visualization.2000:69-75
[Cleveland1984]W.S.Cleveland,R.Mcgill,Graphical perception: Theory,experimentation and application to the development of graphical methods.J.Am.Stat.Assoc.,79(387),1984:531-554
[Christopher1994]A.Christopher,B.Shneiderman.The alphaslider:A compact and rapid selector.ACM CHI,1994
[Haber1990]R.B.Haber,D.A.McNabb.Visualization idioms: A conceptual model for scientific visualization systems.Visualization in Scientific Computing.1990:74-93
[Hansen2004]C.D.Hansen,C.R.Johnson.The Visualization Handbook,Academic Press,2004.
[Heer2007]J.Heer,G.Robertson.Animated Transitions in Statistical Data Graphics.IEEE Transactions on Visualization and Computer Graphics.13(6),2007:1240-1247
[Kindlmann1998]G.Kindlmann,JW.Durkin.Semi-Automatic Generation of Transfer Functions for Direct Volume Rendering.IEEE Symposium On Volume Visualization,1998
[Marckinlay1986]J.Marckinlay.Automating the design of graphical presentations of relational information.ACM Transactions on Graphics.5(2),1986:110-141
[Meyer2009]Miriah Meyer,Tamara Munzner,HanspeterPfister.MizBee: A MultiscaleSynteny Browser.IEEE Transactions on Visualization and Computer Graphics.15(6),2009:897-904
[Munzner2009]T.Munzner.A nested model for visualization design and validation.IEEE Transaction Visualization and Computer Graphics.15(6),2009:921-928
[Potter2010]K.Potter,J.Kniss,R.Riesenfeld,and C.R.Johnson.Visualizing Summary Statistics and Uncertainty.IEEE Transactions on Visualization and Computer Graphics,2010
[Robertson2008]G.Robertson,R.Fernandez,D.Fisher,B.Lee,J.Stasko.Effectiveness of Animation in Trend Visualization.IEEE Transactions on Visualization and Computer Graphics.14(6),2008: 1325-1332
[Shneiderman1996]B.Shneiderman.The eyes have it: a task by data type taxonomy for information visualizations.IEEE Symposium on Visual Languages.1996:336-343
[Steele2010]J.Steele,N.Iliinsky.Beautiful Visualization: Looking at Data Through the Eyes of Experts.O'Reilly.2010
[Stevens1946]S.S.Stevens.On the theory of scales of measurement.Science.103(2684),1946:677680
[Stolte2002]C.Stolte,P.Hanrahan.Polaris: A system for query,analysis and visualization of multidimensional relational databases.IEEE Transactions on Visualization and Computer Graphics.8(1),2002:52-65
[Tirronen2010]V.Tirronen and M.Weber,Sparkline histograms for comparing evolutionary optimization methods.International Conference on Evolutionary Computation,2010
[Tominski2006]C.Tominski.Event-based visualization for user-centered visual analysis.PhD Thesis,Institute for Computer Science,University of Rostock.2006
[Tufte1986]E.R.Tufte.The visual display of quantitative information.Graphics Press.1986
[Tufte2006]Edward Tufte.Beautiful Evidence.Graphics Press,2006
[Tversky2002]B.Tversky,J.B.Morrison,M.Betrancourt.Animation:Can it facilitate?.International Journal of Human-Computer Studies.57(4),2002:247-262
[Wijk2008]J.-D.Fekete,J.J.Wijk,J.T.Stasko,C.North.The value of visualization.Springer BerlinHeidelberg.4950,2008:1-18
[Wilkinson2005]L.Wilkinson.The Grammar of Graphics.New York: Springer-Verlag.2005