从栅格化的图表中提取基础数据是繁琐的,也是不准确的;数值可能被部分遮挡或难以区分、 而且图像的质量限制了数据恢复的精度。为了解决这些问题,作者开发了一个半自动的系统,利用矢量图轻松而准确地提取基础数据。该系统的设计是为了最大限度地利用矢量信息,依靠一个拖放界面,结合选择、过滤和预视化功能,如图1所示。作者通过用户研究表明,参与者花了不到4分钟的时间,就从CHI上发表的具有不同风格的图表中准确地恢复数以千计的数据点、不同编码的组合,以及部分或完全遮挡的元素。与其他依赖光栅图像的方法相比,ChartDetective[1]成功地恢复了所有的数据,即使是隐藏的数据,其相对误差也降低了78%。

那么,人们为什么要做数据提取呢?首先,科学家们可能想将技术与技术现状进行比较,但如果其他论文只展示了他们的结果的图表,那么科学家就需要提取这些数值。其次,有些可视化可能使比较变得困难,设计者希望可以恢复数据,用另一种可视化重新创建该图表,或者把它变成黑白的,让色盲的人也能看到。通过数据提取,人们还可以使图表具有互动性,并把它放在网站上,或者用提取的数据进行不同的分析。这在现实生活中还有许多应用案例。
但是,怎样才能把这个图表变成一个表格呢?首先,人们可以用WebPlotDigitizer[2]逐一对每个数据点通过手动操作完成。但是,如果有很多点的话,做起来就相当困难了。除了手动系统外,还有一些关于全自动方法的研究,但它们能做的事情非常有限。因此,现有阶段通过人的参与是更加可行的。在ChartSense中[3],作者提出使用一个半自动的系统取两者之长。它通过使用一种自上而下的方法来工作,首先它检测图表的类型。然后,它选择正确的启发式方法来帮助用户提取数据。但是,如果图表是非常规的,可能会有一些问题。例如,在那个既有线图又有柱状图的图表中,如果使用了错误的启发式方法怎么办?再加上有些值是重叠的,就不是非常清楚了。用户可能要帮助系统来处理这些问题。而且更重要的是,数据提取总是会受到图像精度的限制。由于分辨率很低且点是重叠的,将不可能恢复准确的数据。

因此,作者在ChartDetective中采取了不同的路线。他们没有关注光栅图像,而是考虑了网上和文件中常见的矢量图形,这是第一个在矢量图形上工作的半自动工具,如图2所示。作者的第一个想法是利用矢量图形,因为它们以浮点坐标而不是像素来存储几何形状。大多数图表工具都提供矢量格式的输出,而这种格式通常用于共享图表。因此,它们的分辨率和位置精度要高得多,甚至可以恢复隐藏或重叠的元素。另外,有了矢量图,形状被清楚地识别出来,文字往往可以直接访问;作者的第二个想法是使用自下而上的方法,重点是图表中存在的不同编码,然后根据这些编码来决定启发式方法;作者的第三个想法是利用矢量格式所提供的信息,通过过滤功能识别颜色和形状是很简单的,这些可以被用作过滤器以方便选择。

那么ChartDetective是如何工作的呢?首先,作者修改了一个PDF浏览器,以便能够从图表中恢复几何形状。然后,该系统对从图表中提取的形状进行预处理。其目的是清理形状,并给出一个一致的表示,以便于解释。因此,作者可以计算出代表形状和颜色的描述符。这些描述符将被用于过滤,并需要对一些变化具有弹性。最后,根据所处理的编码应用特定的启发式方法。

随后,作者从两个方面对ChartDetective进行评估。第一个问题是 “人们可以使用它吗?” 用户研究是由12名参与者进行的。参与者必须提取CHI论文中的一些图表,包括条形图、折线图、散点图和箱形图等最常见的视图。不仅如此,参与者也需要提取了更复杂的图表,包括4种不同编码的混合图表。例如,条形图与折线图的结合,或者箱形图与散点图的结合。此外,他们还提取了4张有很多数据点的图表,这些数据点有时是重叠的,如图4所示。

总的来说,参与者非常成功地完成了这项任务。他们每个图表平均花费不到3分钟,而且他们对所有的图表都达到了非常高的准确度,如图5所示。此外,参与者也通过主观评价表达了对这个工具也非常肯定。他们在系统可用性方面给它打了一个很好的分数,在Likert量表上把它的所有功能都评为有效。在研究期间和之后,参与者的评论也是积极的。这些结果表明参与者可以有效使用ChartDetective。
该实验还没有显示提取的数据的准确性。因为有些用例需要非常准确的数据,如重新运行一个分析任务。因此,作者进行了第二个实验,以精确测量恢复的数据的质量。为了做到这一点,作者收集了一个图表的数据集,其中的基础数据是已知的。数据集的前半部分是使用公共数据和不同的生成器生成的,如excel、ggplot2、plotly和matplotlib。为了有更强的多样性,作者还从过去5年在CHI发表的论文中获得了真实的图表。他们寻找那些有数据集的论文,发现很少有论文公布他们的数据。因此,这并没有产生大量的图表,只有26个能够正确重建的图表。

然后,作者使用WebPlotDigitizer和ChartDetective从这些图表中提取了数据。他们用每个数据点的平均相对误差来比较两种情况下获得的数据。总的来说,ChartDetective的数据提取错误率要低得多,如图6所示。通过第一项系统可用性研究,参与者认为该系统具有很高的可用性,甚至能够提取最具挑战性的图表。第二项研究数据准确性实验表明,使用矢量表示法提取图表比使用现有工具提取相同的栅格式的图表,具有更高的数据准确性。这些结果说明ChartDetective可以支持大部分的数据提取任务。
参考文献:
[1] Damien Masson, Sylvain Malacria, Daniel Vogel, Edward Lank, Géry Casiez. ChartDetective: Easy and Accurate Interactive Data Extraction from Complex Vector Charts. In Proceedings of ACM Conference on Human Factors in Computing Systems (CHI 2023), ACM, Apr 2023, Hamburg, Germany.
[2] https://ift.tt/NE6CIbS
[3] Jung D, Kim W, Song H, et al. Chartsense: Interactive data extraction from chart images[C]//Proceedings of the 2017 chi conference on human factors in computing systems. 2017: 6706-6717.