非线性点图(NonLinear Dot Plot)

柱状图(histogram)和点图(dot plot)是展现数据分布的两种不同的可视化方法。传统的点图使用节点大小一致的节点,直接将数据元素放置到对应的x轴位置处,相对于柱状图的可视化方法,点图是一个更加精确的可视化表现形式,使得其更加容易被用户理解,同时可以支持用户更加简单直观地得到元素的数量。对于大规模的高动态范围数据,在很多情况下用户希望获取数据量较小的数值,但是为了支持用户对于这一范围数据的感知与分析,柱状图支持用户将传统的柱状图转换为非线性的柱状图进行表示。但是对于点图却没有一个合适的可视化方法支持用户的分析,本文的工作提出了一种新的可视化形式,非线性点图,从而支持用户对于大规模的高动态范围的数据进行可视化,更好的感知数据集中数据量较小的异常值。[1]

在介绍本文所提出的非线性点图之前,首先回顾一下,传统的点图是如何进行渲染的。传统的线性点图是怎样进行绘制的,传统的线性点图绘制算法是由伊利诺伊大学芝加哥分校的Leland Wilkinson教授所提出,算法的具体流程如下图1所示,将数据从大到小进行排列之后依次绘制到坐标轴上,如果点之间发生了从谍现象之后就将点依次进行叠加。线性点图的叠加效果如图2所示。线性点图的一个最为明显的特点是其中的点大小相同,对于最大值与最小值差距巨大的数据集,用户无法感知到较小数值的存在,然而对于较小的数值在某些情况下对于用户的数据分析非常重要。

图1 线性点图的绘制步骤

我们以Ben Shneiderman为例,Ben Shnerderman是可视化领域非常著名的学者,同时也是可视化的开创者之一,我们希望观察Ben Shneiderman的论文发表数量以及其引用数据的分布情况,如图3所示,Ben Shneiderman的论文的引用数量主要集中在0 – 1000范围以内,并且数量非常大,但是也存在引用量非常高的文章,但是其数量非常少。根据在线性点图中绘制所得到的结果,我们发现在图中难以发现数量非常少且引用量很高的论文,但是这些论文对于用户分析Ben Shneiderman的论文发表情况是非常重要的一类数据。

图2 Ben Shneiderman的发表论文数量以及引用数量分布的线性点图

非线性点图的可视化方式的目的是将线性点图中数量较少的点表现的更加明显,其解决方法的思想是将非线性的柱状图与线性点图的可视化方式相结合在一起,通过动态的调整非线性点图中点的大小的方法进行调整。具体的渲染方法如图4所示,我们将线性点图的绘制步骤与非线性点图的绘制步骤进行对照比较。二者对照比较我们发现,非线性点图的绘制方式相对于线性点图的绘制方式变化主要有两点,第一将固定的点的大小改变为点的大小可以动态进行改变;第二是将单向的点图渲染算法改变为两个方向的点图渲染算法,同时将两个方向的渲染算法综合得到渲染的最终结果,在后文中会依次对于两个改变进行讲解。

图3 线性点图与非线性点图的绘制步骤比较

将固定大小的点改变为动态改变大小的点。为了支持用户对于较小数量的点的感知,非线性点图需要将数量较大范围的点的大小减小,将数量较少范围的点的大小增加。我们定义点图中每一个柱的点的数量为c,该柱中的点的直径定义为 f(c),整个柱的高度定义为 h(c),点图中每一个柱中的点的直径是相同的,因此我们可以得到上述变量的如下关系:

除此之外,我们定义点图的不同柱状图之间的弱单调性:如果一个点图中某一个柱状中点的数量大于另一个,则其该柱状的高度也要大于等于另外一个柱状,即:

在极端情况下即所有的柱状的高度相同,在极端情况下,点的半径的计算方法为:

最终的效果如图所示,但是显然这个视图并不能满足我们的要求,则对应的点的直径的计算方法应该调整为:

在论文中使用的参数为:s = 0.6。将一次单向的排列算法改变为两个方向排列算法的结合。使用从左到右即按照从小到大依次排列点图中的点,所得到的结果会使得节点在后部分出现重叠覆盖的问题,如图左所示,针对该问题,本文所采用的方法是对于点图执行两个排列的方法,分别是从左到右(从小到大)和从右到左(从大到小),两次执行得到的结果具有相同数量的列,并且他们之间具有对应关系,本文将在两次结果中对应的列的结果计算平均值,根据平均值计算得到列中的节点的直径的长度,从而得到最终的非线性点图的可视化形式。我们依然采用Ben Shneiderman的发表论文的引用数量作为实例进行分析,得到的非线性点图如图所示,根据下图所示的非线性点图,我们可以观察得到Ben Shneiderman在有一篇论文超过10000的引用量,有三篇论文超过4000的引用量,但是绝大多数的论文主要分布在1000引用量的范围以内。

Ben Shneiderman论文引用情况分布的非线性点图

在所绘制的节点数量较密的情况下,由于采样率的不足,会导致可视化结果中出现视觉混淆的现象,如下图左所示,为了解决视觉混淆的问题,本文采用了低通滤波对于初始的可视化结果进行处理,但是不同于普通的处理方法,本文仅仅采用的是纵向的低通滤波处理器对于密集分布的部分处理,同时在上方与下方的节点仍然保持原有的状态不变,保证用户仍然可以感知原始节点的大小。所得到的结果如图右所示。

模糊化处理前(带有视觉混淆)与处理后的(不带有视觉混淆)非线性点图

本文针对传统线性点图对于大规模高动态范围的数据的可视化结果无法支持用户对于数量较小的异常值进行分析的问题,提出了非线性点图的可视化方法,非线性点图的思想是将非线性柱状图与线性点图相结合,将点图不同的柱形内部节点的大小根据柱中所包含的节点数量进行动态调整,并且根据传统的点图绘制算法进行改进得到不会导致点之间相互遮挡覆盖的双向排布算法。针对大规模的非线性点图,采用对于绘制结果进行纵向低通滤波的方法去除视觉混淆的现象,从而大大提到了用户对于大规模高动态范围数据的分析能力。

[1] N. Rodrigues and D. Weiskopf. Nonlinear Dot Plots. IEEE Transactions on Visualization and Computer Graphics, 2018.

评论关闭。