可视化在整个数据分析过程中至关重要,从最初的探索到重要发现和见解的交流。 我们发现模式,发现潜伏的关系,并进行视觉交流。
对于高维数据(即具有许多列和行的数据表),创建足以汇总数据以揭示整体模式并显示数据变异性的规模和程度的图表可能具有挑战性。 让我们考虑一些平衡这些需求的方法。
为了说明这一点,我们将查看 2019 年 3 月所有美国国内航班的一些航空公司出发和到达数据。 我的书里附有数据表使用 JMP 进行实用数据分析,第三版。 完整数据表包含 38 列和超过 632,000 行。 首先,我们考虑到达延误,以分钟为单位报告。 在图形生成器中,我们将到达延迟列到 Y 放置区域并生成默认图形,即离群值箱线图。

该图显示了延迟的高度右偏分布,中值接近于零。 也许 50% 的航班提前抵达,75% 的航班仅有轻微延误。 检查 5 个数字摘要框可以告诉我们更多信息,人们可能想知道 1,928 分钟的最大值,或 32 小时的延迟。

离群值箱线图中的上须线是在 Q3 + 1.5*(四分位数范围)处构建的,在本例中为 31.5 + 1.5(21) = 37.5。 大量但不确定数量的观察结果都在 37 分钟以上。 如果我们使用箭头工具选择胡须上方的点,我们会发现有近 54,000 个异常值,但在图形的初始渲染中,我们看到一条暗线,在较高值处有一些衰减点。
一个更大的问题是,异常值可能会在视觉上使大多数航班在预定时间后几分钟内到达的事实相形见绌。 如果我们的首要任务是传达分布的中心和形状,我们可能更喜欢直方图或小提琴图。 后者是等值线图选项。 这是并排的两个图表。
这些可视化突出显示了整个分布的位置和形状,而不会过分强调外围点。 另一方面,它们实际上根本没有显示任何数据点。
当然,我们可以通过右键单击图表并选择“添加”>“点”,将每个单独的点添加到任何这些图中。 这是小提琴图,其点覆盖在轮廓上。

问题在于过度绘制太多,以至于大多数点都不可见。 该怎么办?
这里有五个简单的策略:
1.分而治之。 制作一组小图表可能不是您的第一选择,但我们从这个开始,因为它有助于更清楚地说明其他技巧。 如果一维图中过度绘制,请包含另一个维度。 例如,我们的数据包含一个分类变量,用于识别延迟的主要原因当发生延误时。 在此数据集中,只有大约三分之一的航班延误,因此我们看到的是大约 200,000 个点,而不是 600,000 个点。
使用主要原因作为分组变量,有助于识别延迟变化的潜在动态原因,并且还可以更清晰地显示各个数据值。 例如,很明显,大多数延误似乎是由承运商和迟到的设备造成的,最长的延误可归因于承运商,而安全延误很少且短暂。

请注意,在此渲染中,点不再垂直对齐,而是已紧张不安。 也就是说,它们已稍微向左和向右重新定位,以在它们之间留出空白。 这给我们带来了第二种策略。
2.添加或调整抖动。 在这个单变量图中,一些点已均匀地向左或向右移动。 默认抖动模式将点分开,以便我们可以了解每个值有多少次航班,但点覆盖了轮廓。
在图形生成器中,抖动控件提供了选项。



例如,如果我们选择随机正态抖动并减少抖动限制,我们可以再次展示小提琴:
减少抖动可以揭示小提琴,但会增加过度绘制。 接下来的三种策略更直接地处理降低墨水密度。 我们可以通过右键单击黑点来调用这些选项到达延迟在图表右上角的图例中。


3.使用开放标记。 选择标记 >并选择空心圆而不是实心点。 现在,邻近点明显重叠,而不是彼此重叠。

4.使用较小的标记。即使使用开放标记,点的密度也会导致相当多的过度绘制。 有时,简单地使用较小的点会留下更多的空白,从而使各个点更加明显。 我们通过右键单击图例中的黑色圆圈并选择来完成此操作标记尺寸 > 1,小。

5.使用半透明标记。 开放标记让我们可以透过点的中心看到,但点的轮廓是不透明的。 为了减少视觉混乱,我们可以使点半透明。 再次右键单击图例中的黑色圆圈,然后选择透明度…打开此对话框:

按照指示输入 0 到 1 之间的值。 以下是针对 20% 标记密度输入 0.2 的结果。
在此版本中,非常稀疏的最高点几乎消失得无影无踪,但较低值处的点的丰富性却得到了强调。
这五种基本策略同样适用于双变量和多变量图。 例如,这里是使用小的开放标记的到达延迟与出发延迟的散点图。 为了添加第三个维度,我们根据延迟的主要原因对点进行着色。
我们现在正在绘制所有 612,000 个点,其中大部分都非常接近或低于原点。 左下角的大量黑点是提前或准时到达的航班,因此没有到达延误的主要原因。 延误的相对频率和严重程度是显而易见的。 更重要的是,尽管数据密度很大,我们仍然可以检测整体模式以及各个点。