多视图可视化设计的引导式语义捕捉(Semantic Snapping for Guided Multi-View Visualization Design)

图1:Semantic snapping 引导用户交互修改多视图可视化设计

视觉信息显示通常由多个可视化组成,用于促进对数据的理解。然而,由于缺乏可视化的专业设计知识,非专家用户在设计多视图可视化时,可能会造成误导或其他有问题的结果。例如,违反一致性约束,即相同的数据应该以相同的方式显示,不同的数据应该以不同的方式显示。然而,让用户手动检测和解决冲突很容易出错,尤其是对于初学者来说,要想出替代的表示会十分耗时。因此,一种自动或半自动的方法有望帮助用户检测和解决潜在问题。在检查视图之间的关系,确定潜在的改进方案,以及实现相应变化等方面仍然存在挑战。传统的Snapping会在几何图像周围创建一个“重力场”,从而更容易将它们以特定方式放在一起。在本文中,Semantic Snapping 表示在将多个单独的视图融合在一起时,解决相互的冲突和冗余。

在图1中,左下角和右下角的视图使用相同的红色,但语义不同,可能会导致错误的推断,可以通过改变填充颜色来区分。此外,在组合单独设计良好的图表时,它们可能会显示重叠的信息,或使用冗余的屏幕空间。这些问题可以通过以较少的视图显示相同的数据来解决。在图1中,可以对两个折线图进行镜像操作,从而使总体设计更加紧凑。

图2:语义模型的关系和操作

在多视图可视化中,视图往往有一个维度分组和多个视觉通道。每个通道都有一个数据映射、一个数据域和最终的视觉输出。作者用 Chart grouping (G)、 Channel (C)、Data mapping (D)、Visual output (V)等4个元素代表视图的特征,并将单个视图之间的关系定义为语义不一致和冗余,使用具有两个轴的语义空间来表示一致性和紧凑程度。每个关系都可以被识别为潜在的问题。多视图可视化及其可能的修改方案可以放在语义空间中。如图2所示,每一次修改后的设计具有更多或更少的一致性,和更多或更少的紧凑性。需要注意的是,一致性和紧凑性并不是越高越好,它们有时会因为其他设计考虑因素所折衷。在每次改变设计时,系统都会重新寻找视图的关系,以推断当前可用的操作。

图3:视图关系的描述和谓词逻辑表达式

在本文中,作者使用简洁的谓词逻辑表达式描述视图之间的关系。视图的每个通道都有对应一个(G,C,D,V)元组,其中 G 总是相同的,(C,D,V)对于每个通道都是唯一的。在图3中有两个视图,分别具有 x 轴、y 轴和填充颜色的三个通道的元组。由于填充颜色的通道没有数据映射,表示为 D 等于 0。当比较两个视图的元组时,使用对应的小写字母表示相等或不相等。例如,如果他们拥有相同的维度分组则 g 等于 1。如果两个字段在语义上相同则 d 等于 1。作者根据现有的可视化准则对这些关系进行总结。如果有一对来自不同视图的通道,满足其中一个谓词逻辑公式,则两个视图之间存在关系。显然,如果视图A和B之间存在关系,且视图 A 和视图 C 之间存在关系,则视图 B 和视图 C 之间也存在关系。

图4:语义模型的关系和表达式总结

如图4所示,作者从 Qu 等人的评估约束 [2] 和 Kindlmann 等人的代数模型[3]中,提取出了 6 种视图关系的范式。视图的关系是视图之间冗余或不一致的表现。它们可以帮助用户识别整体视觉设计中的潜在问题。下面将分别介绍这6种不同的视图关系。

图5:Partial Redundancy和Multiples的案例

R1: Full Redundancy。如果两个视图显示完全相同的数据,即两个视图对所有通道对具有相同的分组,且显示相同的数据,则它们之间存在完全冗余关系。

R2: Partial Redundancy。如果视图一显示了视图二显示的所有数据,以及视图二未显示的数据,则两个视图被视为部分冗余。例如图 5(A) 和图 5(C) 中,这两个柱状图具有相同的分组,条形高度映射到平均价格,但只有一个图表通过其填充颜色通道表示其它定量数据。因此,在比较填充颜色通道时,它们有不同的数据映射,且其中一个没有映射到任何信息,满足部分冗余的逻辑表达式。

R3: Multiples (1)。两个视图具有相同的维度分组,但数据不同。例如,图 5(A) 和图5(B)中,有两个相同分组的柱状图通过柱体高度通道显示不同的数量。

R4: Multiples (2)。两个视图具有不同的维度分组,但数据相同。例如,图 5(A) 和图 5(D) 中,两个不同分组的条形图通过柱体高度通道,显示相同的聚合维度。

图6:关于COVID-19 dashboard的案例

R5: Hallucinator。当相同的数据以不同的方式显示时,即具有相同维度分组的两个视图,存在显示相同数据但视觉输出不同的相同通道时,就会出现hallucinator。例如图 6(2) 中,颜色通道编码性别时却使用不同的色阶。

R6: Confuser。如果两个视图的同一通道具有相同的视觉输出,但数据映射不同,则会在画布上造成混淆。例如图 6(1) 中,两个视图使用相同填充颜色显示不同数据。

上述总结的视图关系确定对应了改进冗余、不一致的机会。该系统通过迭代所有视图,并检查它们是否满足与规则对应的表达式,来检测视图的关系。每个关系都有相应的操作,这些操作通过更改一个或多个受影响的视图来解除特定的关系。下面分别介绍本文提供的4种操作。

O1: Delete。Delete 是最简单的操作。如果两个视图之间存在 Full Redundancy或 Partial Redundancy 的关系,用户可以删除一个视图。

O2: Homogenize。Homogenize操作用于解决multiples和 hallucinator,即相同的数据以不同方式显示的问题。例如,图6中条形图和面积图以不同的颜色方案显示相同的数据维度,可以通过Homogenize操作使视图的视觉输出相等来解决这些冲突。

O3: Differentiate。Differention操作用于解决Confuser的问题,即两个视图以相同的方式显示不同的数据。例如,图6中使用相同的配色方案显示不同的数据,则Differention操作将对其中一个视图修改为不同的配色方案。

O4: Integrate。Integrate操作用于解决Partial Redundancy和某些Multiples的关系,以在画布上创建一个更紧凑的视觉效果。对于Partial Redundancy的关系,有两种可能的解决方案:删除显示数据较少的视图,或者在删除另一个视图的同时将“缺失”映射集成到此视图中。对于x轴的数据分组和数据映射相同的Multiples关系,有四种方式执行Integrate操作:叠加、分组、堆叠和镜像。叠加是将多个视图集成到同一坐标系中,此操作可应用于散点图和折线图。镜像操作将两个视图对齐,然后镜像其中一个视图,可以应用于折线图、面积图和条形图。分组操作将多个视图捆绑到一个视图中,堆叠操作将视图堆叠到一个视图中。

图7:Semantic snapping 的系统界面和工作流程

如图7所示,该系统的界面中有两个主要视图:singles视图和canvas视图。当singles视图的单个可视化被拖到canvas视图中,或通过前面提供的操作修改多视图的设计时,系统会重新检测关系并更新相应的操作。上述每个关系的逻辑都映射到一个包含两个视图的关系函数。Snapping 算法将识别所有视图子集之间的所有关系。当用户选择一个视图时,视图的关系将被查找并用于确定哪些操作是可行的。在用户执行一个操作后,系统将生成一组新的视图,并重新计算关系。

本文提出了Semantic snapping,这是一种半自动的引导式方法,允许用户逐步改进多视图可视化,提出精确检测视图之间的关系,以及如何通过操作解决每个关系的概念。其中,每个操作都是语义空间中的一个步骤,两个正交的轴代表一致性和紧凑性。用户可以执行系统提供的操作,以逐步完善多视图可视化设计。

参考文献:

[1] Y. S. Kristiansen, L. Garrison and S. Bruckner, “Semantic Snapping for Guided Multi-View Visualization Design,” in IEEE Transactions on Visualization and Computer Graphics, vol. 28, no. 1, pp. 43-53, Jan. 2022.

[2] Z. Qu and J. Hullman, “Keeping Multiple Views Consistent: Constraints, Validations, and Exceptions in Visualization Authoring,” in IEEE Transactions on Visualization and Computer Graphics, vol. 24, no. 1, pp. 468-477, Jan. 2018.

[3] G. Kindlmann and C. Scheidegger, “An Algebraic Process for Visualization Design,” in IEEE Transactions on Visualization and Computer Graphics, vol. 20, no. 12, pp. 2181-2190, 31 Dec. 2014.

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>