理解数据变换代码对数据工作者是非常重要的任务。然而完成这项任务需要熟练掌握编程技能和充分了解代码使用的编程语言和库。同时,理解代码的过程耗时且容易出错。现有的代码可视化工作专注于提供中间状态信息,而不支持对数据变换过程的呈现。
Xiong等人 [1]针对数据变换的不同类型,设计了23种不同的可视化图元(glyph),将数据变换过程通过图元进行可视化,帮助数据工作者快速理解数据变换代码。

图元设计
对于图元,Xiong等人提出以下设计需求
- 精确地表示变换类型的语义
- 只表述核心的信息
- 图元与数据关联
- 保持不同图元编码的一致性
该工作的作者检查了Python和R的3个数据处理库中的160个函数。他们在Kasica等人[2]总结的变换操作框架基础上,增加了展开和折叠操作,形成了23种数据变换类型,用于对函数进行语义标注,并总结出了图元的设计空间。
在设计图元的内容时,需要考虑数据变换函数包含6个最重要的参数。
- 函数名:指定使用的函数。由于函数名和变换类型并非一一对应,该工作的作者在设计图元时不使用这一参数。
- 函数的输入和输出:该工作考虑了二维的数据表格。
- 显式列或行:由函数中参数显式指定。
- 隐式列或行:由过滤条件隐式指定。
- 背景列或行:被过滤条件排除的属性列或数据行。
- 变换参数:指定具体的变换类型。
对于图元的可视编码,该工作的作者提出了设计的指导原则。
- 图元应该包含输入和输出的数据表格。
- 显式的实体都应该显示在图元的表格里,而隐式和背景实体则只需选择一至两个进行显示。
- 显式和隐式的列中应该包含文字信息,如属性名称和属性值。
- 表格之外的文字用于显示表格名称、变换的语义等。
- 单元格颜色用于区分不同类型的单元等。
SOMNUS系统
该工作还提出了一个可视化系统SOMNUS。用户上传原始数据表格和数据处理代码,系统将自动解析出该代码的数据变换过程,并以点边图的形式展示。其中,节点对应变换中的数据表格,边代表变换类型。图元根据数据和变换生成,并被显示在边旁帮助快速理解数据变换。

该系统的流程如图3所示。其中,程序适配器(program adaptor)通过执行程序获得函数的输入和输出,通过对代码的解析获取表格名称、函数名称和参数等信息,最后通过基于规则的方法对函数进行变换类型的预测,输出数据变换过程的声明。可视化生成器(visualization generator)根据变换的信息,生成数据变换历史图和变换对应的图元,并将图元放置于历史图中对应的边旁。

评估
该工作设计了组内实验来比较SOMNUS方法和Trifacta生成的文字描述对理解数据变换的有效性。该实验在R语言上考察2种技术、2个数据集和针对函数理解和数据变换理解的10个任务,包含了40个试验。20名实验参与者拥有熟练的编程技能,但是不熟悉R语言。
实验结果显示,使用SOMNUS时,参与者对函数和数据变换过程理解的准确率都高于使用文字描述,所使用的时间也更少。参与者认为SOMNUS更有用和更可理解。参与者也更不需要通过点击函数来获取关于它的详细信息。
参考文献
[1] K. Xiong, S. Fu, and G. Ding et al. Visualizing the Scripts of Data Wrangling with SOMNUS. IEEE Transactions on Visualization and Computer Graphics, 2022.
[2] S. Kasica, C. Berret, and T. Munzner. Table Scraps: An Actionable Framework for Multi-Table Data Wrangling from an Artifact Study of Computational Journalism. IEEE Transactions on Visualization and Computer Graphics, 2020.
评论关闭。