数据可视化的基础知识-全-

数据可视化的基础知识(全)

原文:Fundamentals of Data Visualization

协议:CC BY-NC-SA 4.0

6 可视化数量

原文: 6 Visualizing amounts

校验:飞龙

自豪地采用谷歌翻译

在许多情况下,我们对某些数字的大小感兴趣。例如,我们可能需要想像不同品牌汽车的总销量,或生活在不同城市的总人数,或从事不同运动的奥林匹克运动员的年龄。在所有这些情况下,我们都有一组类别(例如,汽车,城市或运动)和每个类别的定量值。我将这些情况称为可视化数量,因为这些可视化中的主要重点将放在定量值的大小上。此场景中的标准可视化是条形图,它有多种变体,包括简单条形以及分组和堆叠条形。条形图的替代方案是散点图和热图。

6.1 条形图

为了启发条形图的概念,请考虑特定周末最受欢迎电影的总票房销量。表 6.1 显示了 2017 年圣诞周末前五周的总票房销量。电影“Star Wars: The Last Jedi”是本周末最受欢迎的电影,远远超过第四名和第五名的电影“The Greatest Showman”和“Ferdinand”差不多 10 倍。

表 6.1:2017 年 12 月 22 日至 24 日周末的最高票房电影。数据来源:Box Office Mojo,经许可使用

排名 标题 周末总票房
1 Star Wars: The Last Jedi $71,565,498
2 Jumanji: Welcome to the Jungle $36,169,328
3 Pitch Perfect 3 $19,928,525
4 The Greatest Showman $8,805,843
5 Ferdinand $7,316,746

这种数据通常用垂直条形图显示。对于每部电影,我们绘制一个从零开始的条形图,并一直延伸到该电影的周末总值的美元值(图 6.1)。该可视化称为条形图。

图 6.1:2017 年 12 月 22 日至 24 日周末的最高票房电影。数据来源:Box Office Mojo,经许可使用

我们通常遇到的垂直条形的一个问题是,标注每个条形的标签占用了大量的水平空间。事实上,我不得不将图 6.1 设置得相当宽,并将条形的间距变大,以便我可以将电影标题放在下面。为了节省水平空间,我们可以将条形放在一起并旋转标签(图 6.2 )。但是,我不是旋转标签的大力支持者。我发现最终的绘图很难阅读。而且,根据我的经验,每当标签太长而不能水平放置时,它们看起来也不好看。

图 6.2:2017 年 12 月 22 日至 24 日周末的最高票房电影,显示为带有旋转轴刻度标签的条形图。旋转轴刻度标签往往难以阅读,并且需要使用绘图下方的笨拙的空间。出于这些原因,我通常认为旋转刻度标签的图形很难看。数据来源:Box Office Mojo,经许可使用

长标签的更好解决方案通常是交换 xy 轴,使条形水平放置(图 6.3)。在交换轴之后,我们获得了一个紧凑的图形,其中所有可视元素(包括所有文本)都是水平方向的。因此,该图比图 6.2 或甚至图 6.1 更容易阅读。

图 6.3:2017 年 12 月 22 日至 24 日周末的最高票房电影,显示为水平条形图。数据来源:Box Office Mojo( http://www.boxofficemojo.com/ )。经许可使用

无论我们是垂直还是水平放置条形,我们都需要注意条形排列的顺序。我经常看到条形图,其中条形图是任意排列的,或者是在图形的上下文中没有意义的某些标准。一些绘图程序默认按标签的字母顺序排列条形图,其他类似的任意排列也是可能的(图 6.4 )。一般而言,所得到的数字比按其大小排列的条形图更加混乱且不太直观。

图 6.4:2017 年 12 月 22 日至 24 日周末的最高票房电影,显示为水平条形图。这里,条形按照电影标题长度降序排列。这种条形排列是任意的,它没有用于有意义的目的,并且它使得所得图形比图 6.3 更不直观。数据来源:Box Office Mojo,经许可使用

然而,当条形表示的类别没有自然排序时,我们应该仅仅重新排列条形。每当存在自然排序时(即,当我们的类别变量是有序因子时),我们应该在可视化中保留该排序。例如,图 6.5 显示了按年龄组划分的美国年收入中位数。在这种情况下,条形应按年龄升序排列。按照条形高度排序同时改变年龄组是没有意义的(图 6.6)。

图 6.5:2016 年美国家庭年收入中位数,按年龄组划分。 45-54 岁年龄组的收入中位数最高。数据来源:美国人口普查局

图 6.6:2016 年美国家庭年收入中位数,按年龄组年龄组,按收入排序。虽然这种条形的顺序看起来很有吸引力,但是年龄组的顺序现在令人困惑。数据来源:美国人口普查局

注意条形顺序。如果条形表示无序类别,则按照数据值的升序或降序对它们进行排序。

6.2 分组和堆叠条形

前一小节中的所有示例都显示了定量数量如何根据一个类别变量而变化。然而,我们经常同时对两个类别变量感兴趣。例如,美国人口普查局提供按年龄和种族划分的收入中位数。我们可以用分组条形图(图 6.7)可视化该数据集。在分组条形图中,我们在 x 轴的每个位置绘制一组条形图,由一个类别变量确定,然后我们根据另一个类别变量在每个组内绘制条形图。

图 6.7:2016 年美国家庭年收入中位数,按年龄组和种族划分。年龄组沿着 x 轴显示,并且对于每个年龄组,有四个条形,分别对应于亚洲人,白人,拉美人和黑人的收入中位数。数据来源:美国人口普查局

分组条形图一次显示大量信息,它们可能令人困惑。事实上,即使我没有将图 6.7 标记为坏或丑,我觉得很难阅读。特别是,对于特定的种族分组,很难比较不同年龄组的收入中位数。因此,只有当我们主要关注种族分组的收入水平差异(分别针对特定年龄组)时,这个图形才适用。如果我们更关心种族分组收入水平的总体模式,可能最好沿着 x 轴显示种族,并在每个种族分组中显示年龄为不同的条形图(图 6.8)。

图 6.8:2016 年美国家庭年收入中位数,按年龄组和种族划分。与图 6.7 相反,现在沿着 x 轴显示种族,并且对于每个种族,我们根据七个年龄组显示七个条形。数据来源:美国人口普查局

图 6.7 和 6.8 均沿着 x 轴的位置编码一个类别变量,另一个按条形颜色编码。在这两种情况下,按位置编码都很容易阅读,而按条颜色编码则需要更多精力,因为我们必须在精神上匹配条形图颜色与图例中的颜色。我们可以通过显示四个单独的常规条形图而不是一个分组条形图来避免这种额外的心理负担(图 6.9)。我们选择哪种不同的选择最终是品味问题。我可能会选择图 6.9 ,因为它避免了不同条形颜色的需要。

图 6.9:2016 年美国家庭年收入中位数,按年龄组和种族划分。我们现在将数据显示为四个单独的常规条形图,而不是将这些数据显示为分组条形图,如图 6.7 和 6.8 。这种选择的优点是,我们不需要用条形颜色编码类别变量。数据来源:美国人口普查局

比起并排绘制条组,有时最好将条形堆叠在一起。当各个堆叠条形表示的数量之和本身就是一个有意义的数量时,堆叠就很有用。因此,虽然堆叠图 6.7 的中位收入值(两个中位收入值的总和不是一个有意义的值)是没有意义的,但堆叠图 6.1 的周末总值可能是有意义的。 (两部电影的周末总值之和是这两部电影合计的总票数)。当单个条形表示计数时,堆叠也是合适的。例如,在人口数据集中,我们可以单独统计男性或女性,也可以将它们统计在一起。如果我们在表示男性人数的条形图上堆叠代表女性人数的条形图,则组合条形的高度表示不论性别的人数。

我将使用 1912 年 4 月 15 日沉没的跨大西洋远洋轮船泰坦尼克号乘客的数据集来证明这一原则。船上约有 1300 名乘客,不包括船员。乘客在三个舱位(第一,第二或第三)中的一个旅行,并且船上的女性乘客几乎是男性的两倍。为了按舱位和性别可视化乘客的细分,我们可以为每个舱位和性别绘制单独的条形图,然后对于每个舱位,将代表男性的条形图堆叠在代表女性的条形图上(图 6.10)。组合条形代表每个舱位的乘客总数。

图 6.10:泰坦尼克号的一,二,三等舱的男女乘客人数。

图 6.10 与我之前显示的条形图的不同之处在于没有明确的 y 轴。我已经显示了每个条形代表的实际数值。每当绘图仅显示少量不同的值时,将实际数字添加到绘图中是有意义的。这大大增加了绘图传达的信息量,而没有增加太多的视觉噪声,并且它消除了对显式 y 轴的需要。

6.3 点图和热图

条形图不是可视化数量的唯一选项。条形的一个重要限制是它们需要从零开始,因此条形长度与所示数量成比例。对于某些数据集,这可能不切实际或可能会模糊关键特征。在这种情况下,我们可以通过在 xy 轴的适当位置放置点来指示数量。

图 6.11 展示了这种可视化方法,用于美洲 25 个国家的预期寿命数据集。这些国家的公民的预期寿命在 60 到 81 岁之间,每个人的预期寿命值在 x 轴的适当位置显示为蓝点。通过将轴范围限制在 60 至 81 年的区间,该图突出了该数据集的主要特征:加拿大在所有列出的国家中,具有最高的预期寿命,而玻利维亚和海地的预期寿命远低于所有其他国家。如果我们使用了条形而不是点(图 6.12),我们已经做了一个不太引人注目的图形。因为这个图中的条形很长,并且它们都具有几乎相同的长度,所以眼睛被吸引到条形的中间而不是它们的端点,并且该图形无法传达其信息。

图 6.11:2007 年美洲国家的预期寿命。数据来源:Gapminder 项目

图 6.12:2007 年美洲国家的预期寿命,以条形图形示。此数据集不适合用条形图显示。这些条形太长了,他们将注意力从数据的关键特征,不同国家的预期寿命差异中吸引过来。数据来源:Gapminder 项目

然而,无论我们使用条形还是圆形,我们都需要注意数据值的排序。在图 6.11 和 6.12 中,各国按照预期寿命的降序排列。如果我们按字母顺序对它们进行排序,我们最终会得到混乱的点云,这些点令人困惑并且无法传达明确的信息(图 6.13)。

图 6.13:2007 年美洲国家的预期寿命。这里,按字母顺序排列国家,这会导致点成无序的点云。这使得图形难以阅读,因此它应该被标记为“不好”。数据来源:Gapminder 项目

到目前为止,所有示例都沿位置刻度,按照地点表示数量,通过条形的终点或点的位置。对于非常大的数据集,这些选项都不合适,因为所得图形会变得太密集。我们已经在图 6.7 中看到,仅仅七组四个数据值可能会导致图形复杂且不易阅读。如果我们有 20 组 20 个数据值,那么类似的图形可能会非常混乱。

作为通过条形或点将数据值映射到位置的替代方法,我们可以将数据值映射到颜色上。这样的图称为热图。图 6.14 使用这种方法显示了 1994 年到 2016 年的 23 年中,20 个国家的互联网用户的百分比。虽然这种可视化使得更难确定所显示的确切数据值(例如,2015 年美国互联网用户的确切百分比是多少?),它突出了更广泛的趋势。我们可以清楚地看到,哪些国家早期开始使用互联网,哪些国家没有,我们也可以清楚地看到,哪些国家在数据集覆盖的最后一年(2016 年)具有较高的互联网渗透率。

图 6.14:部分国家/地区的互联网使用情况。颜色表示相应国家/地区的互联网用户的百分比。国家按 2016 年的互联网用户百分比排序。数据来源:世界银行

与本章讨论的所有其他可视化方法一样,我们需要在制作热图时,注意类别数据值的顺序。在图 6.14 中,各国按 2016 年互联网使用的百分比排序。此顺序将英国,日本,加拿大和德国置于美国之上,因为所有这些国家在 2016 年的互联网普及率都比美国高,虽然美国在较早的时候具有大量的互联网使用。或者,我们可以通过他们的互联网使用的起始时间来排序国家。在图 6.15 中,各国按照互联网使用率首次上升至 20% 以上的年份进行排序。在这个图形中,美国从顶部落到了第三位,与互联网使用的起始时间相比,它突出了 2016 年的互联网的相对较低的使用率。意大利也可以看到类似的模式。相比之下,以色列和法国起步较晚,但迅速取得了进展。

图 6.15:针对特定国家/地区的互联网使用情况。按照互联网使用率首次超过 20% 的年份排序国家。数据来源:世界银行

图 6.14 和 6.15 都是数据的有效表示。哪一个是首选取决于我们想传达的故事。如果我们的故事关于 2016 年的互联网使用,那么图形 6.14 可能是更好的选择。但是,如果我们的故事是相对于当前的使用,互联网使用的时间是早还是晚,那么图 6.15 是优选的。

7 可视化分布:直方图和密度图

原文: 7 Visualizing distributions: Histograms and density plots

校验:飞龙

自豪地采用谷歌翻译

我们经常遇到这样的情况:我们想要了解特定变量在数据集中如何分布。举一个具体的例子,我们将考虑泰坦尼克号的乘客,这是我们第六章中已经遇到的数据集。泰坦尼克号上有大约 1300 名乘客(不包括船员),我们已经报告了 756 名乘客的年龄。我们可能想知道,在泰坦尼克号上有什么年龄的多少乘客,即有多少儿童,年轻人,中年人,老年人等等。我们将乘客中不同年龄的相对比例称为乘客的年龄分布。

7.1 可视化单个分布

我们可以通过将所有乘客分组到具有可比年龄的箱子,然后计算每个箱中的乘客数量来获得乘客的年龄分布的印象。该程序产生如表 7.1 的表格。

表 7.1: 泰坦尼克号上已知年龄的乘客数

年龄范围 计数
0–5 36
6–10 19
11–15 18
16–20 99
21–25 139
26–30 121
31–35 76
36–40 74
41–45 54
46–50 50
51–55 26
56–60 22
61–65 16
66–70 3
71–75 3

我们可以通过绘制填充的矩形来显示该表,这些矩形的高度对应于计数,其宽度对应于年龄段的宽度(图 7.1)。这种可视化称为直方图。 (请注意,所有箱子必须具有相同的宽度,以便可视化成为有效的直方图。)

图 7.1:泰坦尼克号乘客年龄的直方图。

因为直方图通过对数据进行分箱而生成,所以它们的确切视觉外观取决于箱宽的选择。生成直方图的大多数可视化程序默认选择一个箱宽,但是对于您可能想要制作的任何直方图,箱宽可能不是最合适的。因此,始终尝试不同的箱宽来验证所得直方图是否准确反映基础数据至关重要。通常,如果箱宽太小,则直方图变得过于尖锐并且视觉上嘈杂,并且数据中的主要趋势可能被掩盖。另一方面,如果箱宽太大,则数据分布中的较小特征(例如 10 岁左右的下降)可能消失。

对于泰坦尼克号乘客的年龄分布,我们可以看到一岁的箱宽太小,十五岁的箱宽太大,而箱宽在三到五年之间最合适(图 7.2)。

图 7.2:直方图取决于所选的箱宽。在这里,泰坦尼克号乘客的年龄分布相同,有四种不同的箱宽:(a)一岁; (b)三岁; (c)五岁; (d)十五岁。

制作直方图时,请始终探索多个箱宽。

自至少 18 世纪以来,直方图一直是流行的可视化选项,部分原因在于它们很容易通过手工生成。最近,由于笔记本电脑和手机等日常设备已经具备了广泛的计算能力,我们发现它们越来越多地被密度图取代。在密度图中,我们尝试通过绘制适当的连续曲线来显示数据的基本概率分布(图 7.3)。该曲线需要从数据中估计,并且用于该估计过程的最常用方法称为核密度估计。在核密度估计中,我们在每个数据点的位置画一个较小宽度(由一个名为带宽的参数控制)的连续曲线(核),然后我们将所有这些曲线加起来以获得最终密度估计。最广泛使用的核是高斯核(即高斯钟形曲线),但还有许多其他选择。

图 7.3:泰坦尼克号上乘客年龄分布的核密度估计。缩放曲线的高度,使得曲线下面积等于 1。密度估计用高斯核实现,带宽为 2。

与直方图的情况一样,密度图的确切视觉外观取决于核和带宽选择(图 7.4 )。带宽参数的行为类似于直方图中的箱宽。如果带宽太小,则密度估计可能变得过于尖锐并且视觉上嘈杂,并且数据中的主要趋势可能被掩盖。另一方面,如果带宽太大,则数据分布中的较小特征可能消失。此外,核的选择会影响密度曲线的形状。例如,高斯核将倾向于产生看起来像高斯的密度估计,具有平滑的特征和尾部。相比之下,矩形核可以在密度曲线中产生阶梯形的外观(图 7.4d)。通常,数据集中的数据点越多,核的选择就越少。因此,密度图对于大型数据集来说往往是非常可靠和有用的信息,但对于只有几个点的数据集可能会产生误导。

图 7.4:核密度估计取决于所选的核和带宽。这里,使用这些参数的四种不同组合显示了泰坦尼克号乘客的相同年龄分布:(a)高斯核,带宽 =0.5; (b)高斯核,带宽 =2; (c)高斯核,带宽 =5; (d)矩形核,带宽 =2。

密度曲线通常按比例缩放,使得曲线下面积等于 1。这种惯例会使 y 轴刻度混乱,因为它取决于 x 轴的单位。例如,在年龄分布的情况下, x 轴上的数据范围从 0 到大约 75。因此,我们期望密度曲线的平均高度为 1/75 = 0.013。实际上,当观察年龄密度曲线时(例如,图 7.4),我们看到 y 值的范围从 0 到大约 0.04,平均值接近 0.01。

核密度估计有一个我们需要注意的陷阱:它们倾向于在不存在数据的地方产生数据外观,特别是在尾部。因此,不小心使用密度估计很容易导致产生无意义的图形。例如,如果我们不注意,我们可能会生成包含负年龄的年龄分布的可视化(图 7.5)。

图 7.5:核密度估计可以将分布的尾部扩展到没有数据,甚至不可能存在数据的区域。在这里,密度估计已被允许延伸到负年龄范围。这显然是荒谬的,应该避免。

始终验证您的密度估计没有预测无意义数据值的存在。

那么你应该使用直方图或密度图来显示分布吗?可以就这个主题进行激烈的讨论。有些人强烈反对密度图,并认为它们是任意的和误导性的。其他人意识到直方图可能同样具有任意性和误导性。我认为选择主要取决于品味,但有时候一个或另一个选项可能更准确地反映手头数据中感兴趣的具体特征。也有可能不使用二者,而是选择经验累积密度函数或 q-q 图(第八章)。最后,我相信,一旦我们想要一次可视化多个分布,密度估计就会比直方图具有固有的优势(见下一节)。

7.2 同时可视化多个分布

在许多情况下,我们有多个分布,我们希望同时可视化。例如,假设我们想看看泰坦尼克号乘客的年龄在男女之间如何分布。男性和女性乘客一般是同龄人,还是性别之间存在年龄差异?在这种情况下,一种常用的可视化策略是堆叠直方图,我们在男性的条形上绘制不同颜色的女性直方图条形(图 7.6)。

图 7.6:按性别分层的泰坦尼克号乘客年龄的直方图。这个图形被标记为“不好”,因为堆叠的直方图很容易与重叠的直方图混淆(另见图 7.7 )。另外,代表女性乘客的条形的高度不容易彼此比较。

在我看来,应该避免这种类型的可视化。这里有两个关键问题:首先,仅仅看一下这个图形,不会完全清楚这些条形的确切位置。它们是从颜色变化开始还是从零开始?换句话说,是否有大约 25 位女性,年龄在 18-20 岁或者几乎有 80 位?(前者就是这种情况。)其次,女性计数的高度不能直接相互比较,因为这些都是从不同高度开始的。例如,男性平均年龄大于女性,这一事实在图 7.6 中根本不可见。

我们可以尝试通过让所有条形从零开始并使条形部分透明来解决这些问题(图 7.7)。

图 7.7:男性和女性泰坦尼克号乘客的年龄分布,显示为两个重叠的直方图。这个图形被标记为“不好”,因为没有明确的视觉指示,所有蓝条都以 0 开始计数。

但是,这种方法会产生新的问题。现在看来实际上有三个不同的组,而不仅仅是两组,我们仍然不完全确定每个条形的开始和结束位置。重叠的直方图不能工作得很好,因为在另一个上面绘制的半透明条看起来不像半透明条形,而是像用不同颜色绘制的条形。

重叠密度图通常不具有重叠直方图所具有的问题,因为连续密度线有助于眼睛保持分布分离。然而,对于这个特定的数据集,男性和女性乘客的年龄分布在 17 岁左右几乎相同,然后发散,因此产生的可视化仍然不理想(图 7.8)。

图 7.8:男性和女性泰坦尼克号乘客年龄的密度估计。为了突出显示男性乘客多于女性乘客,密度曲线按比例缩放,使得每条曲线下的面积对应于已知年龄的男性和女性乘客的总数(分别为 468 和 288)。

适用于该数据集的解决方案是分别显示男性和女性乘客的年龄分布,每个图作为整体年龄分布的一个比例(图 7.9)。这种可视化直观而清晰地表明,在泰坦尼克号上,20-50 岁年龄段的女性比男性少得多。

图 7.9:男性和女性泰坦尼克号乘客的年龄分布,以乘客总数的比例显示。彩色区域分别显示男性和女性乘客年龄的密度估计,灰色区域显示乘客整体年龄分布。

最后,当我们想要准确地可视化两个分布时,我们还可以制作两个单独的直方图,将它们旋转 90 度,并使一个直方图中的条形指向另一个直方图的相反方向。这种技巧通常用于可视化年龄分布,结果图通常称为年龄金字塔(图 7.10)。

图 7.10:可视化为年龄金字塔的男性和女性泰坦尼克号乘客的年龄分布。

重要的是,当我们想要同时显示两个以上的分布时,这个技巧不起作用。对于多个分布,直方图往往变得高度混乱,而密度图只要分布有些不同且连续就能工作得很好。例如,为了可视化来自四个不同品种的奶牛的乳脂百分比分布,密度图很好(图 7.11)。

图 7.11:四个品种的牛奶中乳脂百分比的密度估计。数据来源:加拿大纯种奶牛的表现记录

为了一次可视化几个分布,核密度图通常比直方图更好。

8 可视化分布:经验累积分布函数和 q-q 图

原文: 8 Visualizing distributions: Empirical cumulative distribution functions and q-q plots

校验:飞龙

自豪地采用谷歌翻译

在第七章中,我描述了如何使用直方图或密度图来可视化分布。这两种方法都非常直观且具有视觉吸引力。然而,正如该章中所讨论的,它们有共同的限制,即所得图形在很大程度上取决于用户必须选择的参数,例如直方图的箱宽和密度图的带宽。因此,两者都必须被视为对数据的解释,而不是数据本身的直接可视化。

作为使用直方图或密度图的替代方法,我们可以简单地将所有数据点单独显示为点云。但是,对于非常大的数据集,这种方法变得难以处理,并且在任何情况下,聚合方法中有一些值,突出显示分布的属性而不是单个数据点。为了解决这个问题,统计学家发明了经验累积分布函数(ecdfs)和分位数-分位数(q-q)图。这些类型的可视化不需要任意参数的选择,它们一次显示所有数据。不幸的是,它们比直方图或密度图更不直观,我不认为它们在高科技出版物之外经常使用。不过,他们在统计学家中很受欢迎,我认为任何对数据可视化感兴趣的人都应该熟悉这些技术。

8.1 经验累积分布函数

为了说明累积的经验分布函数,我将从一个假设的例子开始,该例子使用我在教室里作为教授大量处理的东西来建模:学生成绩的数据集。假设我们的班有 50 名学生,学生们刚刚完成了考试,他们的得分在 0 到 100 分之间。我们如何才能最好地可视化课堂表现,例如来确定适当的成绩界限?

我们可以绘制得分不超过某个值的学生总数与所有可能的得分。该图将是一个升序函数,从 0 分和 0 人开始,到 100 分和 50 人结束。关于这种可视化的另一种思考方式如下:我们可以按所获得的分数按升序对所有学生进行排名(使得分最低的学生排名最低,得分最高的学生排名最高) ,然后绘制排名与获得的实际得分。结果是经验累积分布函数(ecdf)或简单称为累积分布。每个点代表一个学生,并且线条展示了对于任何的可能得分,观察到的学生的最高排名(图 8.1)。

图 8.1:假设的 50 名学生的学生成绩的经验累积分布函数。

你可能想知道如果我们按照相反的顺序对学生进行排序,会发生什么。这个排名简单地翻转了它的函数。结果仍然是经验累积分布函数,但现在这些线表示对于任何可能的得分,观察到的最低学生排名(图 8.2)。

图 8.2:作为降序 ecdf 绘制的学生成绩分布。

升序累积分布函数比降序函数更广为人知,更常用,但两者都有重要的应用。当我们想要显示高度偏斜的分布时,降序累积分布函数是至关重要的(参见章节 8.2 )。

在实际应用中,绘制 ecdf 而不突出显示各个点,并通过最大排名对排名进行归一化是很常见的,因此 y 轴代表累积频率(图 8.3)。

图 8.3:学生成绩的 Ecdf。学生排名已经按照学生总数标准化,因此绘制的 y 值对应于班级中得分不超过一定值的学生的比例。

我们可以直接从该图中读取学生成绩分布的关键属性。例如,大约四分之一的学生(25%)得到不到 75 分。中点值(对应于 0.5 的累积频率)是 81。大约 20% 的学生得到 90 分或更多。

我发现 ecdfs 可以方便地分配成绩边界,因为它们可以帮助我找到最小化学生不快乐的准确截断点。例如,在这个例子中,在 80 分以下有一条相当长的水平线,接着是 80 分的急剧上升。这个特征的成因是三名学生在考试中获得 80 分,而另一名表现较差的学生只获得 76 分。在这种情况下,我可能会认为得分为 80 或者以上的每个人都会得到一个 B,而且每个 79 或者更少的人都会得到 C。这三个 80 分的学生很高兴他们刚得到了一个 B,而那个 76 分的学生意识到他必须表现得更好才能不得到 C。如果我把截断值设定为 77,那么字母等级的分布就完全一样了,但我可能会发现,76 分的学生来我办公室,希望协商他们的成绩。同样,如果我将截断值设置为 81,在我的办公室里可能会有三名学生试图协商他们的成绩。

8.2 高度偏斜的分布

许多经验数据集具有高度偏斜的分布,特别是右边的重尾,这些分布可能具有挑战性。此类分布的示例包括居住在不同城市或县的人数,社交网络中的联系人数,单个单词出现在书中的频率,不同作者撰写的学术论文数量,个体净值,以及蛋白质相互作用网络中单个蛋白质的相互作用伙伴的数量(Clauset,Shalizi 和 Newman,2009)。所有这些分布的共同点是它们的右尾衰减比指数函数慢。实际上,这意味着非常大的值并不罕见,即使分布的平均值很小。一类重要的此类分布是幂律分布,其中观测值 x 大于某些参考点的值的可能性降为 x 的幂。举一个具体的例子,考虑美国的净值,它是幂为 2 的指数分布。在任何给定的净值水平(比如 100 万美元),净值为一半的人是四倍,净值为两倍的人是四分之一。重要的是,如果我们使用 10,000 美元作为参考点或者我们使用 1 亿美元,那么同样的关系也成立。因此,幂律分布也称为无刻度分布。

根据 2010 年美国人口普查,我将首先讨论生活在美国各州的人数。这种分布在右边有一个很长的尾巴。尽管大多数县的居民人数相对较少(中位数为 25,857),但仍有少数县拥有极大数量的居民(例如洛杉矶县,居民人数为 9,818,605)。如果我们试图将人口分布可视化为密度图或 ecdf,我们获得的数据基本上是无用的(图 8.4)。

图 8.4:根据 2010 年美国人口普查,美国各县的居民人数分布。(a)密度图。 (b)经验累积分布函数。

密度图(图 8.4a)在 0 处有一个尖峰,几乎没有可见的分布细节。类似地,ecdf(图 8.4b)在 0 附近快速上升,并且同样没有可见的分布细节。对于此特定数据集,我们可以对数据进行对数转换并可视化对数转换值的分布。这种转换在这里起作用,因为县里的人口数量实际上并不是幂律,而是遵循近乎完美的对数正态分布(参见 8.3 部分)。实际上,对数变换值的密度图显示出良好的钟形曲线,相应的 ecdf 显示出良好的 S 形形状(图 8.5)。

图 8.5:美国各县居民人数的对数分布。(a)密度图。(b)经验累积分布函数。

为了查看这个分布不是幂律,我们将其绘制为具有对数 xy 轴的降序 ecdf。在此可视化中,幂律显示为完美的直线。对于县里的人口数量,右尾在降序双对数 ecdf 图上几乎是一条直线,但不是很像(图 8.6)。

图 8.6:至少有一定居民的县的相对频率,与县居民的数量。

作为第二个例子,我将使用出现在小说“白鲸记”中的所有单词的词频分布。这种分布遵循完美的幂律。当使用对数轴绘制为降序 ecdf 时,我们看到几乎完美的直线(图 8.7 )。

图 8.7:小说“白鲸记”中词数的分布。显示的是在小说中至少出现一定次数的单词的相对频率与使用单词的次数。

8.3 分位数-分位数图

当我们想要确定观察到的数据点在何种程度上遵循给定分布时,分位数-分位数(q-q)图是有用的可视化。就像 ecdfs 一样,q-q 图也基于对数据进行排名,并可视化排名和实际值之间的关系。但是,在 q-q 图中,我们不直接绘制排名,如果数据是根据指定的参考分布而分布的,我们使用它们来预测给定数据点应该落在哪里。最常见的是,使用正态分布作为参考构建 q-q 图。举一个具体的例子,假设实际数据值的平均值为 10,标准差为 3。然后,假设正态分布,我们预计排在百分位数 50 的数据点值为 10(平均值) ,百分位 84 的数据点值为 13(高于平均值一个标准差),百分位 2.3 的数据点值为 4(平均值以下两个标准差)。我们可以对数据集中的所有点执行该计算,然后绘制观测值(即,数据集中的值)与理论值(即,给定每个数据点的排名和假定的参考分布的预期值)。

当我们从本章开头对学生成绩分布执行此过程时,我们得到图 8.8 。

图 8.8:学生成绩的 q-q 图。

这里的实线不是回归线,而是表示 x 等于 y 的点,即观察值等于理论值的点。如果点落在该线上,则数据遵循假设分布(此处为正态)。我们发现学生的成绩主要是正态分布,在底部和顶部有一些偏差(少数学生的表现比预期更差)。分布的顶部偏差是由假设检验中的最大点值 100 引起的;无论最好的学生有多好,他或她最多可以获得 100 分。

我们还可以使用 q-q 图来测试我在本章前面的断言,即美国各县的人口数量遵循对数正态分布。如果这些计数是对数正态分布的,那么它们的对数变换值是正态分布的,因此应该直接落在 x = y 线上。在制作这个图时,我们看到观测值与理论值之间的一致性是异常的(图 8.9)。这表明县之间人口数量的分布确实是对数正态的。

图 8.9:美国各县居民人数对数的 q-q 图。

参考

Clauset, A., C. R. Shalizi, and M. E. J. Newman. 2009. “Power-Law Distributions in Empirical Data.” SIAM Review 51: 661–703.

9 一次可视化多个分布

原文: 9 Visualizing many distributions at once

校验:飞龙

自豪地采用谷歌翻译

在许多情况下,我们希望同时可视化多个分布。例如,考虑天气数据。我们可能想要了解不同月份的温度变化情况,同时还显示每个月内观测到的温度分布。这种情况需要一次显示 12 个温度分布,每个月一个。在这种情况下,第七和八章中讨论的所有可视化都不起作用。相反,可行的方法包括箱形图,提琴图和脊线图。

每当我们处理许多分布时,根据响应变量和一个或多个分组变量进行思考是有帮助的。响应变量是我们想要显示其分布的变量。分组变量定义具有响应变量的不同分布的数据的子集。例如,对于跨月的温度分布,响应变量是温度,分组变量是月。本章讨论的所有技术都沿一个轴绘制响应变量,沿另一个轴绘制分组变量。在下文中,我将首先描述沿垂直轴显示响应变量的方法,然后我将描述沿水平轴显示响应变量的方法。在所讨论的所有情况下,我们都可以翻转轴并获得另一种可行的可视化。我在这里展示了各种可视化的规范形式。

9.1 沿垂直轴可视化分布

一次显示多个分布的最简单方法是将它们的平均值或中位数显示为点,并通过误差条显示平均值或中值附近的变化。图 9.1 将这种方法,用于展示 2016 年内布拉斯加州林肯市的月气温分布。我将此图形标记为不好,因为这种方法存在多个问题。首先,通过仅用一个点和两个误差条表示每个分布,我们丢失了大量的数据信息。其次,即使大多数读者可能猜测它们代表均值或中位数,但这些点代表的东西并不是很明显。第三,误差条代表什么肯定不明显。它们是否代表数据的标准差,均值的标准误差,95% 置信区间或其他一些东西?没有普遍接受的标准。通过阅读图 9.1 的图标题,我们可以看到,它们在这里代表日平均温度标准差的两倍,意味着指示包含大约 95% 数据的范围。但是,误差条更常用于显示标准误差(或 95% 置信区间的标准误差的两倍),读者很容易将标准误差与标准差混淆。标准误差量化了我们对均值估计的准确程度,而标准差则估计了数据在均值周围的分散程度。数据集可能具有非常小的均值标准误差和非常大的标准差。第四,如果数据存在任何偏差,对称误差线会产生误导,这种情况几乎适用于所有真实世界的数据集。

图 9.1:2016 年内布拉斯加州林肯市的日平均气温。点表示每月的日平均温度,在一个月的所有日期上计算平均,误差条代表每个月的日平均温度的两倍标准差。这个图形被标记为“不好”,因为误差条通常用于显示估计值的不确定性,而不是总体的可变性。数据来源:Weather Underground

我们可以通过使用传统且常用的可视化分布方法(箱形图)来解决图 9.1 的所有四个缺点。箱形图将数据划分为四分位数并以标准化方式将其可视化(图 9.2 )。

图 9.2:箱形图的剖析。显示的是点云(左)和相应的箱形图(右)。只有点的 y 值在箱线图中可视化。箱形图中间的线表示中位数,箱中包含 50% 的中间数据。顶部和底部的线延伸到数据的最大值和最小值,或者延伸到箱子高度的 1.5 倍以内的最大值或最小值,以较短的线为准。在任一方向上箱子高度的 1.5 倍的距离称为上围栏和下围栏。超出围栏的单个数据点称为异常值,通常显示为单个点。

箱形图是简单但信息丰富的,并且它们在彼此相邻绘制,并一次可视化许多分布时,可以工作得很好。对于林肯温度数据,使用箱线图产生图 9.3 。在该图中,我们现在可以看到 12 月的温度高度偏斜(大多数日子是中度冷,有些是非常寒冷),并且在其他几个月(例如 7 月份)根本没有偏斜。

图 9.3:内布拉斯加州林肯市的日平均温度,可视化为箱线图。

箱形图是由统计学家 John Tukey 在 20 世纪 70 年代早期发明的,并且很快就受到欢迎,因为它们具有很高的信息量而且易于手工绘制。那时的大多数数据可视化都是手工绘制的。但是,凭借现代计算和可视化功能,我们不仅限于手工绘制的内容。因此,最近,我们看到箱形图被提琴图取代,这相当于第 7 章中讨论的密度估计,但旋转了 90 度然后生成镜像(图 9.4 )。无论何时箱形都可以换成提琴图,并且它们提供了更加细致的数据图像。特别是,提琴图将准确地表示双峰数据,而箱形图则不会。

图 9.4:提琴图的剖析。显示的是一团点(左)和相应的提琴图(右)。只有点的 y 值在提琴图中可视化。给定 y 值处的提琴宽度表示 y 值处的点密度。从技术上讲,提琴曲线是一个旋转 90 度然后镜像的密度估计。因此提琴是对称的。提琴分别以最小数据值开始,最大数据值结束。提琴最厚的部分对应于数据集中的最大点密度。

在使用提琴图可视化分布之前,请确认每组中有足够多的数据点,以便点密度为平滑线。

当我们用提琴图显示林肯温度数据时,我们得到图 9.5 。我们现在可以看到,几个月确实有适度的双峰数据。例如,11 月似乎有两个温度峰值,一个约 50 度,一个约 35 华氏度。

图 9.5:内布拉斯加州林肯市的平均日气温,可视化为提琴曲线。

因为提琴图是从密度估计得出的,所以它们也有类似的缺点(第七章)。特别是,它们可以在数据不存在的位置生成数据外观,或者实际上数据集非常稀疏时数据集非常密集。我们可以尝试通过简单地直接绘制所有单个数据点来避免这些问题,如图 9.6 。这样的图称为带状图。带状图原则上很好,只要我们确保我们不会在彼此之上绘制太多的点。过度绘制的简单解决方案是通过在 x 维度中添加一些随机噪声(图 9.7),在 x 轴上使点稍微分散。这种技术也被称为抖动。

图 9.6:内布拉斯加州林肯市的日平均温度,可视化为带状图。每个点代表一天的平均温度。这个图形被标记为“不好”,因为很多点相互叠加,因此不可能确定每个月最常见的温度。

图 9.7:内布拉斯加州林肯市的日平均温度,可视化为带状图。这些点沿 x 轴分散,以便更好地显示每个温度值的点密度。

每当数据集太稀疏而无法证明提琴可视化时,可以将原始数据绘制为单独的点。

最后,通过在给定 y 坐标处,将点与点密度成比例散开,我们可以组合两个图的优势。这种方法,称为 sina 图(Sidiropoulos 等 2018),可以被认为是提琴图和展开点之间的混合,它显示每个单独的点,同时也可视化分布。我在这里在提琴之上绘制了 Sina 图,以突出这两种方法之间的关系(图 9.8)。

图 9.8:内布拉斯加州林肯市的日平均气温,可视化为 Sina 阴影(单独的点和提琴的组合)。这些点沿着 x 轴与各个温度下的点密度成比例地散开。名称 Sina 图旨在表彰丹麦哥本哈根大学的学生 Sina Hadi Sohi,他编写了该大学研究人员制作此类图形的第一版代码(Frederik O. Bagger, personal communication)。

9.2 沿水平轴可视化分布

在第七章中,我们使用直方图和密度图来沿水平轴显示分布。在这里,我们将通过在垂直方向上错开分布图来扩展这个想法。由此产生的可视化称为脊线图,因为这些图看起来像脊线。如果想要显示随时间变化的分布趋势,脊线图往往效果特别好。

标准脊线图使用密度估计(图 9.9 )。它与提琴图密切相关,但经常激发对数据的更直观的理解。例如,11 月左右的 35 度和 50 华氏度的两个温度簇,在图 9.9 中比图 9.5 更加明显。

图 9.9:2016 年内布拉斯加州林肯市的气温,可视化为脊线图。对于每个月,我们以华氏度为单位显示测量的日平均温度的分布。原始图概念: Wehrwein(2017)。

因为 x 轴显示响应变量而 y 轴显示分组变量,所以在脊线图中没有单独的轴用于密度估计。密度估计与分组变量一起显示。这与提琴图没有什么不同,其中密度也与分组变量一起显示,没有单独的显式刻度。在这两种情况下,绘图的目的不是显示特定的密度值,而是为了便于比较各组的密度形状和相对高度。

原则上,我们可以在脊线可视化中使用直方图代替密度图。但是,所得图形通常看起来不太好(图 9.10)。这些问题类似于堆叠或重叠的直方图(第七章)。由于这些脊线直方图中的垂直线始终显示完全相同的 x 值,因此来自不同直方图的条形以令人困惑的方式彼此对齐。在我看来,最好不要绘制这样重叠的直方图。

图 9.10:2016 年内布拉斯加州林肯市的气温,可视化为直方图的脊线图。单个直方图在视觉上不能很好地分离,整体图形非常嘈杂且令人困惑。

脊线图可以扩展到非常大的分布。例如,图 9.11 显示了从 1913 年到 2005 年的电影长度分布。该图包含近 100 种不同的分布,但它很容易阅读。我们可以看到,在 20 世纪 20 年代,电影有很多不同的长度,但自从大约 1960 年以来,电影长度标准化为大约 90 分钟。

图 9.11:电影长度随时间的演变。自 20 世纪 60 年代以来,大部分电影都长约 90 分钟。数据来源:互联网电影数据库,IMDB

如果我们想比较两种趋势,脊线图也很有效。如果我们想要分析两个不同党派的成员的投票模式,则通常会出现这种情况。我们可以通过在时间上垂直交错分布,并在每个时间点绘制两个不同颜色的分布来进行比较,代表两个党派(图 9.12 )。

图 9.12:美国众议院的投票模式日益两极分化。 DW-NOMINATE 分数经常用于比较各党派之间的代表的投票模式,以及随着时间的推移。对于 1963 年至 2013 年的每个国会,这里分别展示了民主党人和共和党人的分数分布。每个国会都由第一年表示。原图概念:McDonald(2017)。

参考

Sidiropoulos, N., S. H. Sohi, T. L. Pedersen, B. T. Porse, O. Winther, N. Rapin, and F. O. Bagger. 2018. “SinaPlot: An Enhanced Chart for Simple and Truthful Representation of Single Observations over Multiple Classes.” J. Comp. Graph. Stat 27: 673–76. doi:10.1080/10618600.2017.1366914.

Wehrwein, Austin. 2017. “It Brings Me Ggjoy.” http://austinwehrwein.com/data-visualization/it-brings-me-ggjoy/.

McDonald, Ian. 2017. “DW-NOMINATE Using Ggjoy.” http://rpubs.com/ianrmcdonald/293304.

10 可视化比例

原文: 10 Visualizing proportions

校验:飞龙

自豪地采用谷歌翻译

我们经常想要展示一些分组,实体或金额如何分解成单个部分,各自代表整体的一部分。常见的例子包括一群人中的男女比例,选举中不同政党投票的百分比,或公司的市场份额。这种可视化的原型是饼图,在任何业务演示中无所不在,并且在数据科学家中备受诟病。正如我们将要看到的,可视化比例可能具有挑战性,特别是当整体被分成许多不同的部分,或者我们希望看到不同部分随时间或条件变化的时候。没有一种理想的可视化方法始终有效。为了说明这个问题,我将讨论一些不同的场景,每个场景都需要不同类型的可视化。

请记住:您始终需要选择最适合您的特定数据集的可视化,并突出显示您要显示的关键数据特征。

10.1 饼图的一个案例

从 1961 年到 1983 年,德国议院(称为 Bundestag)由三个不同党派的成员组成,CDU/CSU,SPD 和 FDP。在大部分时间里,CDU/CSU 和 SPD 的席位数量大致相当,而 FDP 通常只占一小部分席位。例如,在 1976 年至 1980 年的第 8 届联邦议会中,CDU/CSU 共有 243 个席位,SPD 有 214,FDP 有 39,共计 496 个。这种议会数据最常以饼图可视化(图 10.1)。

图 10.1:1976 年至 1980 年第 8 届德国联邦议院的党派组成,可视化为饼图。这种可视化清楚地表明,SPD 和 FDP 的执政联盟与反对派 CDU/CSU 相比多一小部分。

饼图将圆圈分成切片,使得每个切片的面积与其表示的总体比例成正比。可以在矩形上执行相同的过程,结果是堆叠条形图(图 10.2 )。根据我们是垂直还是水平切割条形,我们获得垂直堆叠的条形图(图 10.2 a)或水平堆叠的条形图(图 10.2 b)。

图 10.2:1976 年至 1980 年第 8 届德国联邦议院的党派组成,可视化为堆叠条形。 (a)垂直堆叠的条形。 (b)水平堆叠的条形。 SPD 和 FDP 共同拥有的席位并不比 CDU / CSU 更明显。

我们也可以从图 10.2a 中取出它们并将它们并排放置,而不是将它们堆叠在一起。这种可视化使得更容易直接比较三组,但它模糊了数据的其他方面(图 10.3)。最重要的是,在并排条形图中,每个条形与总数的关系在视觉上并不明显。

图 10.3:1976 年至 1980 年第 8 届德国联邦议院的党派组成,可视化为并排的条形。如图 10.2 所示,SPD 和 FDP 共同拥有的席位并不比 CDU / CSU 更明显。

许多作者断然拒绝饼图并赞成并排或堆叠条形图。其他人则在某些应用中坚持使用饼图。我个人认为,这些可视化中没有一个比任何其他可视化都优越。根据数据集的特征和您想要讲述的具体故事,您可能希望采用一种或另一种方法。在第 8 届德国联邦议院的情况下,我认为饼图是最好的选择。它清楚地表明,SPD 和 FDP 的共同执政联盟比 CDU / CSU 多一小部分(图 10.1)。在任何其他图中,这一事实在视觉上并不明显(图 10.2 和 10.3)。

通常,当目标是强调简单比例(例如,一半,三分之一或四分之一)时,饼图效果很好。当我们有非常小的数据集时,它们也能工作得很好。单个饼图,如图 10.1 ,看起来很好,但是如图 10.2a 中的单列堆叠条形看起来很尴尬。另一方面,堆叠条形可以用于多个条件或时间序列的并排比较,并且当我们想要直接比较各个部分时,并排条形是优选的。表 10.1 中提供了饼图,堆叠条形和并排条形的各种优缺点的摘要。

表 10.1:可视化比例的常用方法的利弊:饼图,堆叠条形图和并排条形图。

饼图 堆叠条形图 并排条形图
将数据清楚地可视化为整体的比例
可以轻松直观地比较相对比例
视觉上强调简单的比例,例如 1/2, 1/3, 1/4
即使对于非常小的数据集,看起来也很吸引人
当整体被分成许多部分时效果很好
适用于多组比例或时间序列比例的可视化

10.2 并排条形的情况

我现在将演示饼图失败的情况。这个例子是在最初发布在维基百科(维基百科 2007)上的饼图评论之后建模的。考虑五家公司 A,B,C,D 和 E 的假设情景,他们的市场份额大致相当于约 20%。我们的假设数据集连续三年列出了每家公司的市场份额。当我们使用饼图可视化此数据集时,很难看到究竟发生了什么(图 10.4)。似乎公司 A 的市场份额正在增长,而公司 E 的市场份额正在缩小,但这一观察结果之外,我们无法分辨出正在发生的事情。特别是,目前尚不清楚不同公司的市场份额在每年内具体如何。

图 10.4:2015 - 2017 年五个假设公司 A-E 的市场份额,可视化为饼图。这种可视化有两个主要问题:1、几年内相对市场份额的比较几乎是不可能的,2、很难看到多年来市场份额的变化。

当我们切换到堆叠条形图时,图像会变得更清晰(图 10.5)。现在,A 公司不断增长的市场份额和 E 公司萎缩的市场份额的趋势清晰可见。但是,每年五家公司的相对市场份额仍难以比较。并且很难比较多年之内公司 B,C 和 D 的市场份额,因为这些条形在多年之内相对于彼此平移。这是堆叠条形图的一般问题,也是我通常不推荐这种可视化的主要原因。

图 10.5:2015-2017 年五家假设公司的市场份额,可视化为堆叠条形图。这种可视化有两个主要问题:1、难以比较多年内的相对市场份额,2、很难看到中间的公司 B,C 和 D 多年内市场份额的变化,因为金色条形的位置会随着年份而变化。

对于这个假设数据集,并排条形是最佳选择(图 10.6 )。这种可视化突出显示,公司 A 和 B 都在 2015 年至 2017 年间增加了市场份额,而公司 D 和 E 都减少了他们的市场份额。它还显示 A 公司到 E 公司的 2015 年市场份额依次增加,2017 年同样下降。

图 10.6:2015-2017 年五家假设公司的市场份额,可视化为并排条形图。

10.3 堆叠条和堆叠密度图的情况

在 10.2 一节中,我写道我通常不建议堆叠条形的序列,因为内部条形的位置沿着序列移动。但是,如果每个堆叠中只有两个条形,则内部条形移动的问题就会消失,在这些情况下,所得到的可视化可以非常清晰。例如,考虑一个国家议会中妇女的比例。我们将特别关注非洲国家卢旺达,截至 2016 年,卢旺达是女议员比例最高的国家之一。自 2008 年以来,卢旺达女议员占多数,自 2013 年以来,议会中近三分之二的议员是女性议员。为了想象卢旺达议会中妇女的比例随时间如何变化,我们可以绘制一系列堆叠的条形图(图 10.7)。该图为随时间变化的比例提供了直观视觉表示。为了帮助读者确切地看到大多数人变成女性的时间,我添加了 50% 的虚线水平线。没有这条线,几乎不可能确定从 2003 年到 2007 年,大部分是男性还是女性。我没有在 25% 和 75% 添加类似的线条,以避免使图形太杂乱。

图 10.7:1997 年至 2016 年卢旺达议会性别构成的变化。数据来源:各国议会联盟(IPU),ipu.org。

如果我们希望想象比例如何变化来回应连续变量,我们可以从堆叠条形切换到堆叠密度。堆叠密度可以被认为是并排排列的无限多个无限小的堆叠条形的极限情况。堆叠密度图中的密度通常从核密度估计中获得,如第七章所述,我将向您推荐这一章,其中对该方法的优缺点进行了一般性讨论。

举一个堆叠密度可能合适的例子,考虑人的健康状况随年龄的变化。年龄可以被认为是一个连续变量,以这种方式可视化数据工作得相当好(图 10.8)。虽然我们这里有四个健康类别,而且我通常不喜欢堆叠多个条件,如上所述,我认为在这种情况下这个图形是可以接受的。我们可以清楚地看到,随着人们年龄的增长,整体健康状况会下降,我们也可以看到,尽管有这种趋势,但超过一半的人口在年老之前仍保持良好或很棒的健康状态。

图 10.8:一般社会调查(GSS)报告的不同年龄的健康状况。

然而,这个图形有一个主要的局限性:通过将四种健康状况的比例可视化为总数的百分比,该图形模糊了数据集中的年轻人比老年人多得多。因此,尽管报告健康的人的百分比在七十年的年龄段内大致保持不变,但健康状况良好的人的绝对数量,随着特定年龄的人口总数下降而下降。我将在下一节介绍这个问题的潜在解决方案。

10.4 将比例分别展示为总数的一部分

并排条形具有这样的问题:它们不能清楚地展示各个部分相对于整体的大小,并且堆叠条形具有不能容易地比较不同的条形的问题,因为它们具有不同的基线。我们可以通过为每个部分制作单独的图,并且在每个图中展示相对于整体的相应部分,来解决这两个问题。对于图 10.8 的健康数据集,该过程得到图 10.9。数据集中的总体年龄分布显示为灰色阴影区域,每个健康状态的年龄分布显示为蓝色。这个图形突出显示,从绝对意义上讲,健康状况优秀或健康状况良好的人数在 30-40 岁之间下降,而健康一般的人数在各个年龄段都保持不变。

图 10.9:不同年龄的健康状况,显示为调查中总人数的比例。彩色区域显示具有相应健康状况的人的年龄的密度估计,并且灰色区域显示总体年龄分布。

为了提供第二个例子,让我们考虑来自同一调查的不同变量:婚姻状况。随着年龄的增长,婚姻状况的变化远远大于健康状况,婚姻状况与年龄的叠加密度图并不十分可读(图 10.10)。

图 10.10:一般社会调查(GSS)所报告的不同年龄的婚姻状况。为了简化图形,我删除了少数报告为分开的案例。我把这个图形称为“不亮”,因为从未结婚或丧偶的人的频率随着年龄的增长而变化非常大,以至于已婚和离婚的人的年龄分布高度扭曲且难以解释。

可视化为部分密度的相同数据集更清晰(图 10.11 )。特别是,我们看到已婚人口的比例在 30-40 岁末期达到峰值,离婚人口的比例在 40-50 岁初期达到峰值,而丧偶人口的比例在 70-80 岁中期达到峰值。

图 10.11:不同年龄的婚姻状况,显示为调查中总人数的比例。彩色区域显示具有相应婚姻状况的人的年龄的密度估计,并且灰色区域显示总体年龄分布。

然而,图 10.11 的一个缺点是,这种表示不容易确定任何给定时间点的相对比例。例如,如果我们想知道在什么年龄超过 50% 的受访者都已婚,我们不能轻易地从图 10.11 中看出。为了回答这个问题,我们可以使用相同类型的显示,但显示相对比例而不是沿 y 轴的绝对计数(图 10.12)。现在我们看到已婚人口在 20 多岁时开始占多数,而丧偶人口在 70-80 岁中期开始占多数。

图 10.12:不同年龄的婚姻状况,显示为调查中总人数的比例。蓝色区域显示给定年龄的具有相应的状况的人口百分比,灰色区域显示具有所有其他婚姻状况的人口百分比。

参考

Wikipedia, User:Schutz. 2007. “File:Piecharts.svg.” https://en.wikipedia.org/wiki/File:Piecharts.svg.

11 可视化嵌套比例

原文: 11 Visualizing nested proportions

校验:飞龙

自豪地采用谷歌翻译

在前一章中,我讨论了一个方案,将数据集分解为由一个类别变量定义的片段,例如政党,公司或健康状况。然而,我们想要深入探索,并一次按多个类别变量分解数据集,这并不罕见。例如,就议会席位而言,我们可能会对按照代表的党派和性别划分的席位比例感兴趣。同样,对于人们的健康状况,我们可以询问健康状况如何进一步影响婚姻状况。我将这些场景称为嵌套比例,因为我们添加的每个附加类别变量,都会创建一个更精细的嵌套在先前比例中的数据细分。有几种合适的方法可视化这种嵌套比例,包括马赛克图,树形图和平行集。

11.1 嵌套比例产生了错误

我将首先展示两种有缺陷的嵌套比例可视化方法。虽然这些方法对于任何有经验的数据科学家来说都是荒谬的,但我已经在现实中看到它们,因此认为它们值得讨论。在本章中,我将使用匹兹堡 106 座桥梁的数据集。该数据集包含桥梁的各种信息,例如构造它们的材料(钢,铁或木材)以及它们建成的年份。根据建成年份,桥梁被分为不同的类别,例如 1870 年之前建造的手工桥梁和 1940 年后建造的现代桥梁。

让我们假设,我们希望可视化由钢,铁或木材制成的桥梁比例,以及手工或现代的比例。我们可能想通过绘制组合饼图来做到这一点(图 11.1 )。但是,此可视化无效。饼图中的所有切片必须加起来为 100%,此处切片的总和达到 135%。我们的总百分比超过 100% ,因为我们正在重复计算桥梁。数据集中的每个桥梁都由钢,铁或木材制成,因此这三个切片已经表示 100% 的桥梁。每个手工或现代桥梁也是钢桥,铁桥或木桥,因此在饼图中计算两次。

图 11.1:匹兹堡的桥梁,按照建筑材料(钢,木材,铁)和建造日期(手工,1870 年之前,现代,1940 年之后)划分,以饼图展示。数字代表所有桥梁中给定类型的桥梁的百分比。此图形无效,因为百分比加起来超过 100%。建筑材料与施工日期之间存在重叠。例如,所有现代桥梁均由钢制成,大多数手工桥梁由木材制成。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

如果我们选择不要求比例加起来是 100% 的可视化,则重复计算不一定是个问题。如前一章所述,并排条形符合此标准。我们可以在一个图中将不同比例的桥梁显示为条形图,这个图在技术上不是错误的(图 11.2)。尽管如此,我还是将其标记为“不好”,因为它并未立即显示某些类别之间存在重叠。一个不经意的观察者可能从图 11.2 得出结论,有五种不同类型的桥梁,例如,现代桥梁既不是由钢制成,也不是由木头或铁制成。

图 11.2:匹兹堡的桥梁,按照建筑材料(钢,木材,铁)和施工日期(手工,1870 年之前,现代,1940 年之后)划分,显示为条形图。与图 11.1 不同,这种可视化在技术上并不是错误的,因为它并不意味着条形高度需要加起来达到 100%。但是,它也没有明确表明不同分组之间的重叠,因此我将其标记为“不好”。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

11.2 马赛克图和树形图

每当我们有重叠的类别时,最好清楚地显示它们之间的相互关系。这可以用马赛克图完成(图 11.3)。乍一看,马赛克图看起来类似于堆叠条形图(例如,图 10.5)。然而,与堆叠条形图不同,在马赛克图中,各个阴影区域的高度和宽度都不同。请注意,在图 11.3 中,我们看到两个额外的建造时代,新兴(从 1870 年到 1889 年)和成熟(1890 年至 1939 年)。结合手工和现代,这些建造时代涵盖了数据集中的所有桥梁,三种建筑材料也是如此。这是马赛克图的关键条件:显示的每个类别变量必须涵盖数据集中的所有观测值。

图 11.3:匹兹堡的桥梁,由建筑材料(钢,木材,铁)和建造时代(手工,新兴,成熟,现代)划分,显示为马赛克图。每个矩形的宽度与那个时代建造的桥梁的数量成比例,并且高度与使用该材料构造的桥梁的数量成比例。数字代表每个类别中的桥梁数量。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

为了绘制马赛克图,我们首先在 x 轴上放置一个类别变量(这里是桥梁的建造时代),并按照该类别的相对比例细分 x 轴。然后我们将另一个类别变量沿着 y 轴(这里是建筑材料)放置,并且在 x 轴的每个类别中,按照 y 变量(类别)的相对比例将 y 轴细分。结果是一组矩形,其面积与情况数量成比例,它们表示两个类别变量的每个可能的组合。

桥梁数据集也可以以相关但不同的格式可视化,称为树形图。在树形图中,就像马赛克图中的情况一样,我们采用一个封闭的矩形并将其细分为较小的矩形,其面积代表比例。然而,与马赛克图相比,将较小矩形放入较大矩形的方法是不同的。在树形图中,我们以递归方式将矩形嵌套在彼此内部。例如,在匹兹堡桥梁的情况下,我们可以首先将总区域细分为三个部分,代表三种建筑材料,木材、铁和钢。然后,我们进一步细分每个区域,以代表每种建筑材料所代表的建造时代(图 11.4 )。原则上,我们可以继续在彼此内部嵌套更小的细分,但结果相对很快将变得笨拙或混乱。

图 11.4:匹兹堡的桥梁,由建筑材料(钢,木材,铁)和建造时代(手工,新兴,成熟,现代)划分,显示为树形图。每个矩形的面积与该类型的桥梁数量成比例。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

虽然马赛克图和树形图密切相关,但它们具有不同的重点和不同的应用领域。在这里,马赛克图(图 11.3)强调从手工时代到现代时期,建筑材料使用的时间演变,而树形图(图 11.4 )强调钢桥,木桥和铁桥的总数。

更一般地,马赛克图假设,所示的所有比例可以通过两个或更多个类别变量的正交组合来确定。例如,在图 11.3 中,每个桥梁都可以通过选择建筑材料(木材,铁,钢)和时代(手工,新兴,成熟,现代)来描述。而且,原则上这两个变量的每个组合都是可能的,即使在实践中不一定是这种情况。 (这里没有钢质手工桥梁,也没有木质或铁质的现代桥梁。)相比之下,树形图不存在这样的要求。实际上,当通过组合多个类别变量无法有意义地描述比例时,树形图往往能够工作得很好。例如,我们可以将美国分为四个区域(西部,东北部,中西部和南部),每个区域分为不同的州,但一个地区的州与另一个地区的州没有关系(图 11.5)。

图 11.5:美国的州,可视化为树形图。每个矩形代表一个州,每个矩形的面积与状态的地表面积成比例。这些州分为四个地区,西部,东北部,中西部和南部。颜色与每个州的居民数量成比例,较暗的颜色代表较大数量的居民。数据来源:2010 年美国人口普查

马赛克图和树形图都是常用的并且可以是启发性的,但是它们具有与堆叠条形相似的限制(10.1 节):条件之间的直接比较可能是困难的,因为不同的矩形不一定为视觉比较共享基线。在马赛克图或树形图中,由于不同矩形的形状可以变化,这个问题更加严重。例如,在新兴桥梁和成熟桥梁之间存在相同数量的铁桥(三个),但这在马赛克图中很难辨别(图 11.3),因为代表三个桥梁的这两组的这两个矩形,具有完全不同的形状。没有必要解决这个问题 - 可视化嵌套比例可能很棘手。只要有可能,我建议在图上显示实际的计数或百分比,以便读者可以验证,它们对阴影区域的直观解释是否正确。

11.3 嵌套饼图

在本章的开头,我用一个有缺陷的饼图(图 11.1)可视化桥梁数据集,然后我认为马赛克图或树形图更合适。但是,后两种绘图类型都与饼图密切相关,因为它们都使用面积来表示数据值。主要区别在于坐标系的类型,在饼图的情况下为极坐标,在马赛克图或树形图的情况下为笛卡尔坐标。这些不同图之间的这种紧密关系引发了一个问题,即饼图的某些变体是否可用于可视化此数据集。

有两种可能性。首先,我们可以绘制一个由内圆和外圆组成的饼图(图 11.6 )。内圆用一个变量(这里是建筑材料)显示数据的细分,外圆用第二个变量(这里是桥梁的建造时代)显示内圆的每个切片的细分。这种可视化是合理的,但我有我的保留意见,因此我将其标记为“丑陋”。最重要的是,两个独立的圆圈模糊了数据集中的每个桥都具有建筑材料和建造时代的事实。实际上,在图 11.6 中,我们仍在对每个桥进行重复计算。如果我们将两个圆中显示的所有数字相加,我们得到 212,这是数据集中桥梁数量的两倍。

图 11.6:匹兹堡的桥梁,由建筑材料(钢,木,铁,内圆)和建造时代(手工,新兴,成熟,现代,外圆)划分。数字代表每个类别中的桥梁数量。数据来源:Yoram Reich 和 Steven J. Fenves, UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

或者,我们可以首先根据一个变量(例如材料)将饼切成表示比例的片段,然后根据另一个变量(构造时代)进一步细分这些切片(图 11.7 )。通过这种方式,实际上我们正在制作一个包含大量小饼图的普通饼图。但是,我们可以使用颜色来指示饼图的嵌套特性。在图 11.7 中,绿色代表木桥,橙色代表铁桥,蓝色代表钢桥。每种颜色的黑暗代表建造时代,较暗的颜色对应于最近建造的桥梁。通过以这种方式使用嵌套颜色刻度,我们可以通过主要变量(建筑材料)和次要变量(建造时代)可视化数据的细分。

图 11.7:匹兹堡的桥梁,由建筑材料(钢,木材,铁)和建造时代(手工,新兴,成熟,现代)拆分。数字代表每个类别中的桥梁数量。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

图 11.7 的饼图形示桥梁数据集的合理可视化,但是与等效树形图直接相比(图 11.4 ),我认为树形图是更可取的。首先,树形图的矩形形状允许它更好地利用可用空间。图 11.4 和 11.7 具有完全相同的大小,但在图 11.7 中,大部分图由于空白区域被浪费了。图 11.4 ,树形图,几乎没有多余的空白区域。这很重要,因为它使我能够将标签放在树形图中的阴影区域内。内部标签总是使用数据创建比外部标签更强的可视单元,因此是首选。其次,图 11.7 中的一些切片非常薄,因此很难看到。相比之下,图 11.4 中的每个矩形都具有合理的尺寸。

11.4 平行集

当我们想要显示由两个以上类别变量描述的比例时,马赛克图,树形图和饼图都会很快变得难以处理。在这种情况下,可行的替代方案可以是平行集图。在平行集图中,我们展示了总数据集如何按每个单独的类别变量分解,然后我们绘制阴影带,显示子组如何相互关联。对于示例,请参见图 11.8 。在这个图中,我用建筑材料(铁,钢,木材),每个桥梁的长度(长,中,短),每个桥梁的建造时代(手工,新兴,成熟,现代),每座桥跨越河流(Allegheny,Monongahela,Ohio)分解桥梁数据集。连接平行集的条带由建筑材料着色。例如,这表明木桥大部分中等长度(有一些短桥),主要是在手工期间建造(在新兴和成熟期间建造了一些中等长度的桥梁),并主要跨越 Allegheny 河(有一些跨越 Monongahela 河的手工桥梁)。相比之下,铁桥的长度都是中等长度,主要是在手工时期建造起来的,等比例跨越 Allegheny 河和 Monongahela 河。

图 11.8:匹兹堡的桥梁,由建筑材料,长度,建造时代和它们跨越的河流划分,显示为平行集图。条带的着色突出了不同桥梁的建筑材料。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

如果我们按照不同的标准着色,例如通过河流(图 11.9 ),相同的可视化看起来很不一样。这个图形在视觉上很嘈杂,有许多纵横交错的条带,但我们确实看到,几乎所有类型的桥梁都可以跨越每条河流。

图 11.9:匹兹堡的桥梁,按建筑材料,长度,建造时代和跨越河流划分。这个图形类似于图 11.8 ,但现在条带的着色突出了不同桥梁跨越的河流。该图标记为“丑陋”,因为图中间的彩色条带的布置非常嘈杂,并且还因为需要从右向左读取条带。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

我将图 11.9 标记为“丑陋”,因为我觉得它过于复杂和令人困惑。首先,因为我们习惯于从左到右阅读,所以我认为定义着色的集合应该一直显示在左边,而不是右边。这样可以更容易地查看着色的起源位置以及它如何在数据集中流动。其次,改变集合的顺序是一个好主意,这样可以最大限度地减少交叉条带的数量。按照这些原则,我得出图 11.10 ,我认为它比图 11.9 更可取。

图 11.10:匹兹堡的桥梁,按照河流,建造时代,长度和建筑材料划分。该图与图 11.9 的不同之处仅在于平行集的顺序。但是,修改后的顺序会产生更易于阅读且不太嘈杂的图形。数据来源:Yoram Reich 和 Steven J. Fenves,UCI 机器学习库(Dua 和 Karra Taniskidou 2017)

参考

Dua, D., and E. Karra Taniskidou. 2017. “UCI Machine Learning Repository.” University of California, Irvine, School of Information; Computer Sciences. https://archive.ics.uci.edu/ml.

12 可视化两个或多个定量变量之间的关联

原文: 12 Visualizing associations among two or more quantitative variables

校验:飞龙

自豪地采用谷歌翻译

许多数据集包含两个或更多个定量变量,我们可能对这些变量如何相互关联感兴趣。例如,我们可能有一个不同动物的量化测量值数据集,例如动物的身高,体重,长度和日常能量需求。仅绘制两个这样的变量的关系,例如:身高和体重,我们通常会使用散点图。如果我们想一次显示两个以上的变量,我们可能会选择气泡图,散点图矩阵或相关图。最后,对于非常高维的数据集,执行降维可能是有用的,例如以主成分分析的形式。

12.1 散点图

我将使用在 123 只蓝色杰伊鸟上进行的测量值数据集,来演示基本散点图及其若干变体。数据集包含每只鸟的头部长度(从头部的尖端到头部后部测量),头骨大小(头部长度减去喙部长度)以及体重等信息。我们希望这些变量之间存在关系。例如,具有较长喙部的鸟类预计具有较大的头骨大小,具有较大体重的鸟类应具有比具有较小体重的鸟类更大的喙部和头骨。

为了探索这些关系,我先从头部长度与体重的关系图开始(图 12.1)。在该图中,头长度沿 y 轴显示,体重沿 x 轴显示,每只鸟用一个点表示。 (注意术语:我们说,我们根据沿 x 轴显示的变量绘制沿 y 轴显示的变量。)点形成一个分散的云(因此术语是散点图),但毫无疑问,一个趋势是,体重较大的鸟类有更长的头部。头部最长的鸟接近观察到的最大体重,头部最短的鸟接近观察到的最小体重。

图 12.1:头部长度(从喙部尖端到头部后部测量,单位为 mm)与体重(以克为单位),123 个蓝颜色刻度记。每个点对应一只鸟。倾向是较重的鸟类有较长的头部。数据来源:欧柏林学院的 Keith Tarvin

蓝色杰伊数据集鸟包含雄鸟和雌鸟,我们可能想知道头长和体重之间的总体关系是否对每个性别分别成立。为了解决这个问题,我们可以按照鸟的性别对散点图中的点进行着色(图 12.2 )。该图显示头部长度和体重的总体趋势,至少部分是由鸟类的性别驱动的。在相同的体重下,雌性的头部往往比雄性短。与此同时,雌性平均比雄性轻。

图 12.2:123 只蓝鸟的头长与体重的关系。鸟的性别用颜色表示。在相同的体重下,雄鸟往往比雌鸟头更长(特别是更长的喙部)。数据来源:欧柏林学院的 Keith Tarvin

因为头部长度被定义为从喙尖到头部后部的距离,所以较大的头部长度可能意味着较长的喙,较大的头骨或两者。我们可以通过查看数据集中的另一个变量(头骨大小)来理清喙部长度和头骨大小,这与头长相似但不包括喙部。由于我们已经将 x 位置用于体重,y 位置用于头部长度 和点的颜色用于鸟类性别,我们需要另一种美学来绘制头骨大小。一种选择是使用点的大小,产生称为气泡图的可视化(图 12.3)。

图 12.3:123 只蓝鸟的头长与体重的关系。鸟的性别用颜色表示,鸟的头骨大小用标记大小表示。头部长度测量值包括喙部的长度,而头骨大小测量值则不包括。头部长度和头骨大小往往是相关的,但是有些鸟类的头骨大小非常长或短。数据来源:欧柏林学院的 Keith Tarvin

气泡图的缺点是它们显示相同类型的变量,定量变量,具有两种不同类型的比例,位置和大小。这使得难以在视觉上确定各种变量之间的关联强度。此外,编码为气泡大小的数据值之间的差异,比编码为位置的数据值之间的差异更难以察觉。因为即使最大的气泡与总的图形尺寸相比也需要稍微小一些,即使最大和最小气泡之间的尺寸差异也必然很小。因此,数据值的较小差异将对应于实际上不可能看到的非常小的尺寸差异。在图 12.3 中,我使用了一个尺寸映射,可以直观地放大最小的头骨(大约 28mm)和最大的头骨(大约 34mm)之间的差异,但很难确定头骨大小和体重或头部长度之间的关系。

作为气泡图的替代方案,最好显示一个根据全部变量的散点图矩阵,其中每个单独的图显示两个数据维度(图 12.4 )。该图清楚地表明,除了雌鸟往往稍微小一些之外,雌性和雄性鸟的头骨大小和体重之间的关系是相似的。然而,头部长度和体重之间的关系也是如此。不同性别有着显著的差异。雄性鸟类的喙部通常比雌性鸟类更长,其他变量相同。

图 12.4:123 只蓝鸟的头部长度,体重和头骨大小的散点图矩阵。该图显示了与图 12.2 完全相同的数据。然而,因为我们更善于判断位置而不是标记大小,所以在成对散点图中,头骨大小和其他两个变量之间的相关性比图 12.2 更容易察觉。数据来源:欧柏林学院的 Keith Tarvin

12.2 相关图

当我们有超过三到四个量化变量时,散点图矩阵很快变得难以处理。在这种情况下,量化变量对之间的关​​联量并使该数量可视化而不是原始数据更有用。一种常见的方法是计算相关系数。相关系数 r 是介于 -1 和 1 之间的数字,用于衡量两个变量的变化程度。 r = 0 的值意味着没有任何关联,并且值 1 或 -1 表示完美关联。相关系数的符号表示变量是正相关(一个变量中的较大值与另一个变量中的较大值一致)或负相关(一个变量中的较大值与另一个中的较小值一致)。为了提供不同相关强度的可视化示例,在图 12.5 中,我显示了随机生成的点集,这些点在 xy 的相关程度上有很大差异。

图 12.5:不同幅度和方向的相关性示例,以及相关的相关系数 r 。在这两行中,从左到右的相关性从弱到强。在顶行中,相关性为正(一个量的较大值与另一个量的较大值相关联),在底行中它们为负(一个量的较大值与另一个量的较小值相关联)。在所有六个图中, xy 值的集合是相同的,但是个体 xy 值之间的配对已经重组来产生指定的相关系数。

相关系数定义为

其中 \(x_i\)\(y_i\) 是两组观测值,\(\bar x\)\(\bar y\) 是相应的样本均值。我们可以从这个公式中观察到一些事情。首先,公式在 \(x_i\)\(y_i\) 中是对称的,因此 xy 的相关性与 yx 的相关性相同。其次,单个值 \(x_i\)\(y_i\) 仅在相应样本均值的差的上下文中输入公式,因此如果我们以恒定的量移动整个数据集,例如对于某些常数 \(C\),我们用 \(x_i'= x_i + C\) 替换 \(x_i\),相关系数保持不变。第三,如果我们重新调整数据,\(x_i'= C x_i\),相关系数也保持不变,因为常数 \(C\) 将出现在公式的分子和分母中,因此可以约分。

相关系数的可视化称为相关图。为了说明相关图的使用,我们将考虑在取证工作期间获得的 200 多个玻璃碎片的数据集。对于每个玻璃碎片,我们测量其成分,表示为各种矿物氧化物的重量百分比。我们测量了七种不同的氧化物,总共产生 6 + 5 + 4 + 3 + 2 + 1 = 21 对成对相关性。我们可以将这 21 个相关性一次显示为彩色方块矩阵,其中每个方块代表一个相关系数(图 12.6 )。该相关图允许我们快速掌握数据的趋势,例如镁与几乎所有其他氧化物负相关,并且铝和钡具有强烈的正相关性。

图 12.6:取证工作期间获得的 214 个玻璃碎片样本的矿物质含量相关性。该数据集包含七个变量,用于测量每个玻璃片段中发现的镁(Mg),钙(Ca),铁(Fe),钾(K),钠(Na),铝(Al)和钡(Ba)的含量。彩色方块表示这些变量对之间的相关性。数据来源:B. German

图 12.6 的相关图的一个弱点是低相关性,即绝对值在零附近的相关性,不应该像这样在视觉上被抑制。例如,镁(Mg)和钾(K)完全没有相关性,但图 12.6 没有立即显示出来。为了克服这个限制,我们可以将相关性显示为彩色圆圈,并使用相关系数的绝对值来缩放圆形大小(图 12.6 )。以这种方式,低相关性被抑制并且高相关性更好地突出。

图 12.7:取证玻璃样本中矿物质含量的相关性。颜色刻度与图 12.6 相同。但是,现在每个相关的幅度也以彩色圆圈的大小编码。这种选择在视觉上不强调相关性接近于零的情况。数据来源:B. German

所有相关图都有一个重要的缺点:它们相当抽象。虽然它们向我们展示了数据中的重要模式,但它们也隐藏了基础数据点,并可能使我们得出错误的结论。最好是可视化原始数据,而不是从中计算出的抽象的派生数量。幸运的是,我们经常可以在显示重要模式和通过应用降维技术显示原始数据之间找到一个平衡。

12.3 降维

降维依赖于一个关键视角,即大多数高维数据集由多个相关变量组成,这些变量传达重叠信息。这样的数据集可以减少到较少数量的关键维度,而不会丢失太多关键信息。作为一个简单直观的例子,考虑一个人的多种身体特征的数据集,包括每个人的身高和体重,手臂和腿的长度,腰部,臀部和胸部的周长等数量。我们可以立即理解,所有这些数量将首先与每个人的总体规模相关。在其他条件相同的情况下,较大的人会更高,体重更重,手臂和腿更长,腰围,臀部和胸围更大。下一个重要的维度是人的性别。男性和女性的测量值对于大小相似的人来说是显着不同的。例如,女人的臀围往往比男人高,其他一切都是一致的。

有许多降维的技术。我将在这里讨论一种最常用的技术,称为主成分分析(PCA)。 PCA 通过数据中原始变量的线性组合引入一组新的变量(称为主成分,PC),原始变量标准化为零均值和单位方差(参见图 12.8 ,用于二维玩具示例) 。选择主成分使得它们不相关,并且对它们进行排序,使得第一个成分捕获数据中尽可能大的变化量,并且随后的成分捕获越来越少的变化量。通常,只能从前两或三个主成分中看到数据中的关键特征。

图 12.8:二维示例主成分(PC)分析。 (a)原始数据。作为示例数据,我使用蓝鸟数据集中的头长和头骨大小测量值。雌鸟和雄鸟以颜色区分,但这种区分对主成分分析没有影响。 (b)作为 PCA 的第一步,我们将原始数据值缩放为零均值和单位方差。然后,我们沿着数据的最大变化方向定义新变量(主成分,PC)。 (c)最后,我们将数据投影到新坐标中。在数学上,该投影相当于数据点在原点周围的旋转。在此处显示的 2D 示例中,数据点顺时针旋转 45 度。

当我们执行 PCA 时,我们通常对两条信息感兴趣:(i)主成分的组成和(ii)主成分空间中各个数据点的位置。让我们在取证玻璃数据集的主成分分析中看一下这两部分。

首先,我们来看主成分组成(图 12.9)。在这里,我们只考虑前两个成分,PC1 和 PC2。因为 PC 是原始变量(在标准化之后)的线性组合,我们可以将原始变量表示为箭头,指示它们对主成分的贡献程度。在这里,我们看到钡和钠主要贡献于 PC1 而不是 PC2,钙和钾主要贡献于 PC2 而不是 PC1,其他变量对两种成分的贡献不同(图 12.9)。箭头的长度各不相同,因为有两个以上的主成分。例如,铁的箭头特别短,因为它主要用于高阶主成分(未示出)。

图 12.9:取证玻璃数据集的主成分分析(PCA)中前两个成分的组成。主成分 1(PC 1)主要测量玻璃碎片中铝,钡,钠和镁含量,而主成分 2(PC 2)主要测量钙和钾含量,并在一定程度上测量铝和镁的含量。

接下来,我们将原始数据投影到主成分空间(图 12.10 )。我们在该图中看到了不同类型的玻璃碎片的清晰聚类。来自前照灯和车窗的碎片落入 PC 图中清晰描绘的几个区域,几乎没有离群点。来自餐具和容器的碎片更加分散,但与前照灯和窗户碎片明显不同。通过比较图 12.10 和图 12.9 ,我们可以得出结论,窗户样本的镁含量高于平均值,钡,铝和钠含量低于平均值,而前照灯样本相反。

图 12.10:单个玻璃碎片的组成,在 12.9 中定义的主成分空间中可视化。我们看到不同类型的玻璃样本聚集在不同 PC1 和 2 的特征值上。特别是,前照灯的特征是负 PC1 值,而窗户倾向于具有正 PC1 值。餐具和容器的 PC1 值接近零,并且往往具有正 PC2 值。但是,有一些例外情况,容器碎片同时具有负 PC1 值和负 PC2 值。这些碎片的组成与所分析的所有其他碎片完全不同。

12.4 配对数据

多变量定量数据的一个特例是配对数据:在略微不同的条件下,有两个或多个相同数量的测量值的数据。示例包括每个受试者的两个类似测量值(例如,人的右臂和左臂的长度),在不同时间点对同一受试者的重复测量值(例如,一年中两个不同时间的人的体重),或两个密切相关的主题的测量值(例如,两个同卵双胞胎的高度)。对于配对数据,可以合理地假设,属于一对的两个测量值,而不是其他对的测量值彼此更相似。两个双胞胎的高度大约相同,但高度与其他双胞胎不同。因此,对于配对数据,我们需要选择可突出配对测量之间任何差异的可视化。

在这种情况下,一个很好的选择是在对角线上标记 x = y 的简单散点图。在这样的图中,如果每对的两个测量值之间的唯一差异是随机噪声,那么样本中的所有点将围绕该线对称地分布。相比之下,配对测量值之间的任何系统差异,将在数据点相对于对角线向上或向下的系统移位中可见。例如,考虑一下 1970 年和 2010 年 166 个国家的人均二氧化碳(CO2)排放量(图 12.11 )。此示例突出显示配对数据的两个常见特征。首先,大多数点相对接近对角线。尽管各国的 CO2 排放量差异超过近四个数量级,但在 40 年的时间跨度内,每个国家的排放量相当一致。其次,这些点相对于对角线系统地向上移动。在所考虑的 40 年中,大多数国家的 CO2 排放量增加。

图 12.11:1970 年和 2010 年,166 个国家的人均二氧化碳(CO2)排放量。每个点代表一个国家。对角线表示 1970 年和 2010 年的相同 CO2 排放量。这些点相对于对角线系统地向上移动:在大多数国家,2010 年的排放量高于 1970 年。数据来源:二氧化碳信息分析中心

当我们有大量数据点,和/或对整个数据集与零期望的系统偏差感兴趣时,图 12.11 这样的散点图很有效。相比之下,如果我们只有少量的观测值,并且主要对每个个例的身份感兴趣,那么斜率图可能是更好的选择。在斜率图中,我们将各个测量值绘制为排列成两列的点,并通过将成对的点与线连接来表示偶对。每条线的斜率突出了变化的幅度和方向。图 12.12 使用这种方法显示 2000 年至 2010 年间人均 CO2 排放量差异最大的 10 个国家。

图 12.12:2000 年和 2010 年人均二氧化碳(CO2)排放量,显示差异最大的十个国家。数据来源:二氧化碳信息分析中心

与散点图相比,斜率图具有一个重要优势:它们可用于一次比较两个以上的测量值。例如,我们可以修改图 12.12 来显示三个时间点的 CO2 排放量,这里是 2000 年,2005 年和 2010 年(图 12.13 )。这一选择突出了整个十年排放量发生重大变化的国家,以及卡塔尔或特立尼达和多巴哥等国家,它们的第一个和第二个五年间隔的趋势有很大差异。

图 12.13:2000 年,2005 年和 2010 年人均 CO2 排放量,显示差异最大的 10 个国家。数据来源:二氧化碳信息分析中心

13 可视化自变量的时间序列和其他函数

原文: 13 Visualizing time series and other functions of an independent variable

校验:飞龙

自豪地采用谷歌翻译

前一章讨论了散点图,其中我们根据一个定量变量绘制了另一个定量变量。当两个变量中的一个可以被认为是时间时会出现一种特殊情况,因为时间会对数据施加额外的结构。现在数据点具有固有的顺序;我们可以按照时间增加的顺序排列点,并为每个数据点定义前导和后继。我们经常希望用折线图来可视化这个时间顺序。然而,折线图不限于时间序列。只要数据可以按照一个变量排序,它们就是合适的。例如,在受控实验中也出现这种情况,其中治疗变量有目的地设定为一系列不同的值。如果我们有多个依赖于时间的变量,我们可以绘制单个折线图,也可以绘制规则的散点图,然后绘制直线来连接时间上相邻的点。

13.1 单个时间序列

作为时间序列的第一个演示,我们将考虑生物学预印本每月提交的模式。预印本是研究人员在正式同行评审和在科研期刊上发表之前,在线发表的学术文章。预印本服务器 bioRxiv 成立于 2013 年 11 月,专门面向从事生物科学研究的研究人员,自那以后,每月提交的作品大幅增长。我们可以通过制作一种散点图来可视化这种增长(第 12 章),其中我们绘制了代表每个月提交数量的点(图 13.1)。

图 13.1:从 2014 年 11 月到 2018 年 4 月,预印本服务器 bioRxiv 的每月提交量。每个点代表一个月内提交量。在整个 4.5 年期间,提交量一直在稳步增加。数据来源:Jordan Anaya,prepubmed.org

然而,图 13.1 与第 12 章中讨论的散点图之间存在重要差异。在图 13.1 中,点沿着 x 轴均匀分布,并且它们之间有一个确定的顺序。每个点只有一个左边和一个右边的邻居(除了最左边和最右边的点,每个点只有一个邻居)。我们可以通过用直线连接相邻点来在视觉上强调这个顺序(图 13.2)。这样的图被称为折线图。

图 13.2:预印本服务器 bioRxiv 的每月提交量,显示为由线连接的点。这些线不代表数据,但仅作为眼睛的向导。通过用直线连接各个点,我们强调点之间有一个顺序,每个点恰好有一个前面的相邻点和后面的一个相邻点。数据来源:Jordan Anaya,prepubmed.org

有些人反对在点之间绘制线条,因为线条不代表观察到的数据。特别是,如果只有很少的观测值,距离相隔很远,那么在中间时间进行观测时,它们可能不会精确地落在所示的线上。因此,在某种意义上,线对应于补充数据。然而,当点间隔很远或间距不均匀时,它们可能有助于感知。我们可以通过在图形标题中指出它来解决这个难题,例如通过写“直线作为眼睛的向导”(参见图 13.2 的标题)。

然而,使用直线来表示时间序列,并且通常完全省略点,是通常可接受的做法(图 13.3)。没有点,该图更加强调数据的整体趋势,而不是单个观测值。没有点的图形在视觉上也不那么嘈杂。一般来说,时间序列越密集,用点来表示单个观测值就越不重要。对于此处显示的预印本数据集,我认为省略这些点很好。

图 13.3:预印本服务器 bioRxiv 的每月提交量,显示为没有点的折线图。点的省略强调整体时间趋势,同时强调特定时间点处的个别观测值。当时间点的间隔非常密集时,它特别有用。数据来源:Jordan Anaya,www.prepubmed.org

我们也可以用纯色填充曲线下区域(图 13.4 )。这种选择进一步强调了数据的总体趋势,因为它在视觉上将曲线上方的区域与下方区域分开。但是,此可视化仅在 y 轴从零开始时有效,因此每个时间点处的阴影区域高度表示该时间点的数据值。

图 13.4:预印本服务器 bioRxiv 的每月提交量,显示为折线图和下侧填充区域。通过填充曲线下区域,我们更加强调总体时间趋势,而不是仅仅画一条线(图 13.3)。数据来源:Jordan Anaya,prepubmed.org

13.2 多个时间序列和剂量反应曲线

我们经常有多个时间序列,我们想要一次显示它们。在这种情况下,我们必须更加谨慎地绘制数据,因为图形可能会变得混乱或难以阅读。例如,如果我们想要显示每月向多个预印本服务器提交的内容,则散点图不是一个好主意,因为各个时间序列相互碰撞(图 13.5)。用直线连接点可以缓解这个问题(图 13.6)。

图 13.5:生物医学研究相关的三个预印本服务器的每月提交量:bioRxiv,arXiv 的 q-bio 部分和 PeerJ Preprints。每个点代表一个月内相应预印本服务器的提交数量。这个图形被标记为“不好”,因为这三个时间序列在视觉上相互干扰并且难以阅读。数据来源:Jordan Anaya,prepubmed.org

图 13.6:生物医学研究相关的三个预印本服务器的每月提交量。通过使用线连接图 13.5 中的点,我们帮助观众跟踪每个时间序列。数据来源:Jordan Anaya,prepubmed.org

图 13.6 表示预印本数据集的可接受的可视化。但是,单独的图例会产生不必要的认知负担。我们可以通过直接标记线条来减少这种认知负担(图 13.7 )。我们还消除了该图中的各个点,结果比原始起点图 13.5 更加流畅和易读。

图 13.7:生物医学研究相关的三个预印本服务器的每月提交量。通过直接标记线条而不是提供图例,我们减少了读取图形所需的认知负担。消除图例消除了对不同形状点的需求。因此,我们可以通过消除点来进一步简化图形。数据来源:Jordan Anaya, www.prepubmed.org

折线图不限于时间序列。只要数据点具有自然顺序,由沿 x 轴显示的变量反映,它们就是合适的,因此相邻点可以用线连接。例如,这种情况在剂量 - 反应曲线中出现,我们测量改变实验中的一些数值参数(剂量),如何影响感兴趣的结果(响应)。图 13.8 显示了这种类型的经典实验,根据增加的受精量来测量燕麦产量。折线图可视化突出了对于所考虑的三种燕麦品种,剂量 - 响应曲线如何具有相似的形状,但在没有受精的情况下起点不同(即一些品种具有比其他品种更高的产量)。

图 13.8:剂量 - 反应曲线显示了粪肥施肥后燕麦品种的平均产量。有了粪肥作为氮源,燕麦产量通常随着氮的增加而增加,无论品种是什么。这里,粪肥施用量以英担(cwt)计。英担是一个旧的英制单位,等于 112 磅或 50.8 千克。数据源:Yates(1935)

13.3 两个或多个响应变量的时间序列

在前面的例子中,我们只处理了一个响应变量的时间过程(例如,每月的预印本提交量或燕麦产量)。但是,拥有多个响应变量并不罕见。这种情况通常出现在宏观经济学中。例如,我们可能对过去 12 个月房价的变化感兴趣,因为它与失业率有关。我们可以预期,当失业率较低时房价会上涨,反之亦然。

鉴于前面小节中的工具,我们可以将这些数据可视化为两个相互叠加的独立折线图(图 13.9 )。该图直接显示了两个感兴趣的变量,并且可以直接解释。但是,因为这两个变量显示为单独的折线图,所以它们之间的绘图比较可能很麻烦。在两个变量在相同或相反的方向上移动时,如果我们想要识别时间区域,我们需要在两个图形之间来回切换并比较两条曲线的相对斜率。

图 13.9:2001 年 1 月至 2017 年 12 月房价(a)和失业率(b)12 个月的随时间的变化。数据来源:美国劳工统计局 Freddie Mac 房价指数。

作为显示两个单独的折线图的替代方法,我们可以将两个变量相互绘制,绘制从最早的时间点到最晚的时间点的路径(图 13.10)。这种可视化被称为连通散点图,因为我们在技术上在汇智两个变量间的散点图,然后连接相邻点。物理学家和工程师经常将其称为相位图,因为在他们的学科中,它通常用于表示相位空间中的运动。我们之前在第三章中遇到了连通散点图,其中我们绘制了休斯顿,TX 的日常温度法线,与加利福尼亚州圣地亚哥的日常温度法线(图 3.3)。

图 13.10:2001 年 1 月至 2017 年 12 月房价与失业率的 12 个月变化,显示为连通散点图。较暗的色调代表最近几个月。图 13.9 中看到的房价和失业率之间的负相关,导致连通散点图形成两个逆时针圆。数据来源:美国劳工统计局 Freddie Mac 房价指数。原始图概念:Len Kiefer

在连通散点图中,从左下角到右上角的方向上的线表示两个变量之间的相关运动(当一个变量增长时,另一个变量增长),并且从左上角到右下方沿垂直方向的线,表示负相关运动(随着一个变量增长,另一个变量收缩)。如果两个变量具有某种循环关系,我们将在连通散点图中看到圆或螺旋。在图 13.10 中,我们看到 2001 年至 2005 年的一个小圆圈和剩余时间过程的一个大圆圈。

绘制连通散点图时,重要的是我们指明数据的方向和时间刻度。如果没有这样的提示,绘图可能变成毫无意义的涂鸦(图 13.11)。(在图 13.10 中)我在这里使用逐渐变暗的颜色来指示方向。或者,可以沿着路径绘制箭头。

图 13.11:从 2001 年 1 月到 2017 年 12 月,房价与失业率的 12 个月变化。这个绘图被标记为“不好”,因为没有图 13.10 的日期标记和颜色渐变,我们既看不到数据的方向也看不到数据变化速度。数据来源:美国劳工统计局 Freddie Mac 价格指数。

使用连通散点图或两个单独的折线图哪个更好?单独的折线图往往更容易阅读,但是一旦人们习惯连通散点图,他们就可以提取某些模式(例如具有一些不规则性的循环行为),这些模式很难在折线图中找到。事实上,对我来说,房价变化和失业率之间的周期性关系很难在图 13.9 中看到,但图 13.10 中的逆时针螺旋清楚地表明了这一点。研究报告说,读者更容易混淆连通散点图,而不是折线图中的顺序和方向,并且不太可能看出相关性(Haroz,Kosara 和 Franconeri 2016)。另一方面,连通散点图似乎导致更高的参与度,因此这些图可能是吸引读者进入故事的有效工具(Haroz,Kosara 和 Franconeri 2016)。

即使连通散点图一次只能显示两个变量,我们也可以使用它们来可视化更高维的数据集。技巧是首先应用降维(见第 12 章)。然后,我们可以在低维空间中绘制连通散点图。作为这种方法的一个例子,我们将可视化由圣路易斯联邦储备银行提供的 100 多个宏观经济指标的月度观测值的数据库。我们对所有指标进行主成分分析(PCA),然后绘制 PC2 与 PC1(图 13.12a),以及 PC2 与 PC3(图 13.12b)的连通散点图。

图 13.12:将高维时间序列可视化为主成分空间中的连通散点图。该绘图展示了 1990 年 1 月至 2017 年 12 月期间的 100 多个宏观经济指标的联合运动。经济衰退和复苏的时间以颜色表示,三次经济衰退的终点(1991 年 3 月,2001 年 11 月和 2009 年 6 月)也被标记。(a)PC2 与 PC1,(b)PC2 与 PC3。数据来源:M. W. McCracken,St. Louis Fed

值得注意的是,图 13.12a 看起来几乎像一个常规折线图,时间从左到右递增。这种模式是由 PCA 的一个共同特征引起的:第一个成分通常测量系统的总体规模。在这里,PC1 大致衡量经济的总体规模,这种规模很少随着时间的推移而减少。

通过按照衰退和复苏时间,对连通散点图进行着色,我们可以看到衰退与 PC2 下降有关,而复苏与 PC1 或 PC2 中的明显特征无关(图 13.12a)。然而,复苏似乎与 PC3 的下降相对应(图 13.12b)。此外,在 PC2 与 PC3 的图中,我们看到该线遵循顺时针螺旋的形状。这种模式突出了经济的周期性,经济复苏后出现衰退,反之亦然。

参考

Yates, F. 1935. “Complex Experiments.” Supplement to the Journal of the Royal Statistical Society 2: 181–247. doi:10.2307/2983638.

Haroz, S., R. Kosara, and S. Franconeri. 2016. “The Connected Scatterplot for Presenting Paired Time Series.” IEEE Transactions on Visualization and Computer Graphics 22: 2174–86. doi:10.1109/TVCG.2015.2502587.

14 可视化趋势

原文: 14 Visualizing trends

校验:飞龙

自豪地采用谷歌翻译

在制作散点图(第 12 章)或时间序列(第 13 章)时,我们通常对数据的总体趋势更感兴趣,而不是每个单独数据点的位置的具体细节。通过在实际数据点之上或代替实际数据点绘制趋势,通常以直线或曲线的形式,我们可以创建可视化,帮助读者立即查看数据的关键特征。确定趋势有两种基本方法:我们可以通过某种方法平滑数据,例如移动平均值,或者我们可以拟合曲线,它具有所定义的函数形式,然后绘制拟合曲线。一旦我们确定了数据集中的趋势,特别注意相对于趋势的偏差,或将数据分成多个成分(包括基础趋势,任何现有的循环成分,偶然成分或随机噪声)也可能很有用。

14.1 平滑

让我们考虑一下道琼斯工业平均指数(简称道琼斯)的时间序列,这是一个股票市场指数,代表 30 家大型上市公司的价格。具体来说,我们将看看 2008 年崩盘后的 2009 年(图 14.1)。在崩盘的末期,2009 年的前三个月,市场损失超过 2400 点(约 27%)。然后它在当年余下的时间里慢慢恢复。我们如何看待这些长期趋势,同时不再强调不那么重要的短期波动?

图 14.1:道琼斯工业平均指数 2009 年的每日收盘价。数据来源:雅虎金融

在统计方面,我们正在寻找一种方法来平滑股市时间序列。平滑操作产生一个函数,捕获数据中的关键模式,同时去除不相关的细微细节或噪声。金融分析师通常通过计算移动平均值来平滑股市数据。要生成移动平均值,我们需要一个时间窗口,比如时间序列中的前 20 天,计算这 20 天的平均价格,然后将时间窗口移动一天,所以它现在跨越第 2 天到第 21 天,计算这 20 天的平均值,再次移动时间窗口,依此类推。结果是一个由一系列平均价格组成的新时间序列。

为了绘制这个移动平均值序列,我们需要确定与每个时间窗口的平均值关联的特定时间点。财务分析师经常在每个时间窗口的末尾绘制每个平均值。这种选择导致曲线滞后于原始数据(图 14.2a),更严重的滞后对应于更大的平均时间窗口。另一方面,统计学家在时间窗口的中心绘制平均值,这导致曲线完全覆盖原始数据(图 14.2b)。

图 14.2:2009 年道琼斯工业平均指数的每日收盘价,以及 20 天,50 天和 100 天移动平均值。(a)移动平均值绘制在移动时间窗口的末尾。(b)移动平均值绘制在移动时间窗口的中心。数据来源:雅虎金融

无论我们绘制具有或不具有滞后的平滑时间序列,我们都可以看到,我们计算平均的时间窗口的长度,设置了在平滑曲线中保持可见的波动规模。 20 日移动平均值仅消除小的短期峰值,但其他方面也紧随日常数据。另一方面,100 天移动平均值甚至可以消除在数周时间内出现的相当大幅度的下跌或峰值。例如,2009 年第一季度到 7000 点以下的大幅下跌,对于 100 日移动平均值是不可见的,取而代之的是不会低于 8000 点的温和曲线(图 14.2 )。同样,2009 年 7 月左右的下跌在 100 日移动平均值中完全看不到。

移动平均值是最简单的平滑方法,它有一些明显的局限性。首先,它导致平滑的曲线比原始曲线短(图 14.2 )。开头或结尾部分或两者都缺失。并且时间序列被平滑得越多(即,平均窗口越大),平滑曲线越短。其次,即使平均窗口较大,移动平均值也不一定平滑。即使已经实现了更大规模的平滑,它也可能表现出小的凸起和摆动(图 14.2)。这些摆动是由进入或退出平均窗口的各个数据点引起的。由于窗口中的所有数据点均等加权,因此窗口边界处的各个数据点可能对平均值产生明显影响。

统计学家已经开发了许多平滑方法,以减轻移动平均值的缺陷。这些方法复杂得多且计算成本高,但它们在现代统计计算环境中很容易获得。一种广泛使用的方法是 LOESS(局部估计的散点图平滑, W. S. Cleveland(1979)),它将低阶多项式拟合到数据的子集。重要的是,每个子集中心的点比边界点的权重更重,这种加权方案产生的结果比加权平均值更平滑(图 14.3 )。此处显示的 LOESS 曲线看起来类似于 100 天平均值,但不应过度解释这种相似性。可以通过调整参数来调整 LOESS 曲线的平滑度,并且不同的参数选择会使 LOESS 曲线看起来更像 20 天或 50 天的平均值。

图 14.3:图 14.2 道琼斯数据的 LOESS 拟合与 100 天移动平均值的比较。 LOESS 平滑显示的整体趋势几乎与 100 天移动平均值相同,但 LOESS 曲线更平滑,并且延伸到整个数据范围。数据来源:雅虎金融

重要的是,LOESS 不仅限于时间序列。它可以应用于任意散点图,从其名称“局部估计的散点图平滑”可以看出。例如,我们可以使用 LOESS 来寻找汽车油箱容量与其价格之间关系的趋势(图 14.4)。 LOESS 序列显示,油箱容量与廉价汽车(低于 20,000 美元)的价格大致成线性增长,但是对于更昂贵的汽车而言,它保持不变。超过大约 20,000 美元,购买更昂贵的汽车将不会让你拥有一个更大的油箱。

图 14.4:1993 年车型的 93 辆汽车的油箱容量与价格。每个点对应一辆汽车。实线表示数据的 LOESS 平滑。我们看到油箱容量相对于价格近似线性增加,直到约 20,000 美元的价格,然后稳定下来。数据来源:圣劳伦斯大学 Robin H. Lock

LOESS 是一种非常流行的平滑方法,因为它往往会产生适合人眼的效果。但是,它需要拟合许多单独的回归模型。这使得其对于大型数据集较慢,即使在现代计算设备上也是如此。

作为 LOESS 的更快替代品,我们可以使用样条模型。样条曲线是一种分段多项式函数,它具有高度的灵活性,但总是看起来很平滑。使用样条线时,我们会遇到术语“结”。样条曲线中的结是各个样条曲线段的端点。如果我们使用 k 段拟合样条曲线,我们需要指定 k + 1 个结。虽然样条拟合在计算上是有效的,特别是如果结的数量不是太大,样条有其自身的缺点。最重要的是,存在一系列令人眼花缭乱的不同类型的样条曲线,包括三次样条曲线,B 样条曲线,薄板样条曲线,高斯过程样条曲线以及其他许多样条曲线,选择哪个可能并不明显。样条类型和使用的结数的具体选择,可能导致相同数据的平滑函数大不相同(图 14.5 )。

图 14.5:不同的平滑模型表现出极大不同的行为,特别是在数据边界附近。 (a)LOESS 更平滑,如图 14.4。(b)具有 5 个结的立方回归样条。 (c)具有 3 个结的薄板回归样条。(d)高斯过程样条,6 个结。数据来源:圣劳伦斯大学 Robin H. Lock

大多数数据可视化软件将提供平滑功能,可能实现为一种局部回归(如 LOESS)或一种样条曲线。平滑方法可以称为 GAM,广义附加模型,它是所有这些类型的平滑器的超集。重要的是要注意,平滑特征的输出高度依赖于适合的特定 GAM 模型。除非您尝试了许多不同的选择,否则您可能永远不会意识到,您看到的结果在多大程度上取决于统计软件所做的特定默认选择。

在解释平滑函数的结果时要小心。可以通过许多不同方式平滑相同的数据集。

14.2 以所定义的函数形式显示趋势

我们在图 14.5 中看到,对于任何给定的数据集,通用平滑器的行为可能有些不可预测。这些平滑器也不提供具有有意义的解释的参数估计值。因此,只要有可能,最好使用适合于数据的特定函数形式拟合曲线,并使用具有明确含义的参数。

对于油箱数据,我们需要一条曲线,该曲线最初线性上升但随后以恒定值平稳。函数y = A - B exp(-mx)可能适合该顺序。这里,ABm是常数,我们调整它来使曲线适合数据。对于较小的x,函数近似为线性,y ~ A - B + B mx,对于较大x,它接近常数值,y ~ A,对于x的所有制它严格递增。图 14.6 表明该方程至少与我们之前考虑的任何平滑器一样适合数据(图 14.5)。

图 14.6:用明确的分析模型表示的油箱数据。实线对应于公式y = A-B exp(-mx)与数据的最小二乘拟合。拟合参数为A = 19.6 B = 29.2m = 0.00015 。数据来源:圣劳伦斯大学 Robin H. Lock

在许多不同的上下文中适用的函数形式是简单的直线, y = A + mx。在现实世界的数据集中,两个变量之间的近似线性关系非常常见。例如,在第 12 章中,我讨论了蓝鸟的头长和体重之间的关系。这种关系对于雌鸟和雄鸟都是近似线性的,并且在散点图中,在点之上绘制线性趋势线,有助于读者感知趋势(图 14.7)。

图 14.7:123 只蓝鸟的头长与体重的关系。鸟的性别用颜色表示。这个图形相当于图 12.2,但现在我们已经在各个数据点之上绘制了线性趋势直线。数据来源:欧柏林学院的 Keith Tarvin

当数据表现出非线性关系时,我们需要猜测适当的函数形式可能是什么。在这种情况下,通过转换轴使线性关系出现,我们可以评估我们猜测的准确性。为了证明这一原理,让我们回到预印本服务器 bioRxiv 的每月提交量,在第 12 章中讨论。如果每个月提交量的增量与上个月的提交量成比例,即,如果每月的提交量以一个固定的百分比增长,那么得到的曲线是指数的。 bioRxiv 数据似乎满足了这个假设,因为指数形式的曲线y = A exp(mx),很好地符合 bioRxiv 提交数据(图 14.8)。

图 14.8:预印本服务器 bioRxiv 的每月提交量。蓝色实线表示预印本的实际的每月计数,黑色虚线表示数据的指数拟合,y = 60 exp(0.77(x - 2014))。数据来源:Jordan Anaya,prepubmed.org

如果原始曲线是指数,y = A exp(mx),则 y 值的对数变换将使其变为线性关系,log(y) = log(A) + mx。因此,使用对数变换的 y 值(或等效地,使用对数 y 轴)绘制数据并寻找线性关系,是确定数据集是否呈现指数增长的好方法。对于 bioRxiv 提交图形,当使用对数 y 轴时,我们确实获得了线性关系(图 14.9)。

图 14.9:预印本服务器 bioRxiv 每月提交量,以对数刻度显示。蓝色实线表示预印本的实际的每月计数,黑色虚线表示图 14.8 的指数拟合,黑色实线表示对数变换数据的线性拟合,对应于y = 43 exp(0.88(x - 2014))。数据来源:Jordan Anaya,prepubmed.org

在图 14.9 中,除了实际提交计数外,我还显示了图 14.8 的指数拟合以及对数变换数据的线性拟合。这两种拟合相似但不相同。特别是,虚线的斜率似乎略微偏离。在一半时间序列中,该线系统地高于各个数据点。这是指数拟合的常见问题:对于最大数据值,从数据点到拟合曲线的平方偏差与最小数据值相比要大得多,因为最小数据值的偏差对总和平方的贡献很小适合度最小化。结果,拟合直线系统地高于或低于最小数据值。出于这个原因,我通常建议避免指数拟合,而是在对数变换数据上使用线性拟合。

通常,将直线拟合到变换数据,比将非线性曲线拟合到未变换数据更好。

图 14.9 的图通常被称为对数线性的,因为 y 轴是对数的, x 轴是线性的。我们可能遇到的其他图包括双对数,其中 yx 轴都是对数,或线性对数,其中 y 是线性的, x 是对数的。在双对数图中,y ~ x ^ alpha形式的幂律显示为直线(例如,参见图 8.7),线性对数图,y ~ log(x)形式的对数关系显示为直线。其他函数形式可以通过更专业的坐标转换,转换为线性关系,但这三种(对数线性,双对数,线性对数)涵盖了广泛的实际应用。

14.3 趋势和时间序列分解

对于具有突出长期趋势的任何时间序列,删除此趋势来特别突出任何显着​​偏差可能是有用的。这种技术被称为去趋势 ,我将在这里用房价来证明它。在美国,抵押贷款机构 Freddie Mac 发布月度指数,称为 Freddie Mac 房价指数,它跟踪房价随时间的变化。该指数试图捕捉给定区域中整个房屋市场的状态,因此,例如 10% 的指数增加可以被解释为,相应市场中的平均房价增加 10% 。该指数在 2000 年 12 月任意设定为 100。

在很长一段时间内,房价往往呈现出一致的年增长率,与通货膨胀基本一致。然而,覆盖这一趋势的是房地产泡沫,导致严重的繁荣和萧条周期。图 14.10 显示了美国四个州的实际房价指数及其长期趋势。我们看到,在 1980 年到 2017 年之间,加利福尼亚经历了两次泡沫,一次是在 1990 年,一次是在 2000 年代中期。在同一时期,内华达州在 2000 年代中期只经历过一次泡沫,德克萨斯州和西弗吉尼亚州的房价一直紧跟其长期趋势。因为房价倾向于以增量的百分比增长,即指数增长,所以我在图 14.10 中选择了对数 y 轴。直线相当于加利福尼亚州年度价格增长的 4.7%,内华达州,德克萨斯州和西弗吉尼亚州年度价格增长的 2.8%。

图 14.10:1980 年至 2017 年 Freddie Mac 房价指数,显示四个选定州(加利福尼亚州,内华达州,德克萨斯州和西弗吉尼亚州)。房价指数是一个无单位数字,用于跟踪所选地理区域内的相对房价。该指数任意缩放,使其在 2000 年 12 月等于 100。蓝线表示指数的月度波动,而灰色直线表示各州的长期价格趋势。注意, y 轴是对数的,因此灰色直线代表一致的指数增长。数据来源:房地美房价指数

我们通过将每个时间点的实际价格指数,除以长期趋势中的相应值来抵消住房价格。在视觉上,这个除法看起来像是从图 14.10 中的蓝线中减去灰线,因为未转换值的除法相当于对数转换值的减法。由此产生的去趋势房屋价格更清晰地显示房屋泡沫(图 14.11 ),因为趋势强调了时间序列中的意外移动。例如,在原始时间序列中,加利福尼亚州从 1990 年到 1998 年的房价下跌看起来不大(图 14.10 )。但是,在同一时期,根据长期趋势,我们预计价格会上涨。相对于预期的上涨,价格下跌幅度很大,在最低点达到 25%(图 14.11)。

图 14.11:Freddie Mac 房屋价格指数的去趋势版本如图 14.10 所示。通过将实际指数(图 14.10 中的蓝线)除以基于长期趋势的预期值(图 14.10 中的直灰线)来计算去趋势指数。这种可视化表明,加利福尼亚经历了两次房地产泡沫,大约在 1990 年和 2000 年代中期,可以通过相对于长期趋势的预期的实际房价的快速上涨和随后的下降来确定。同样,内华达州在 2000 年代中期经历了一次房地产泡沫,德克萨斯州和西弗吉尼亚州都没有经历过太多的泡沫。数据来源:Freddie Mac 房价指数

除了简单的去趋势之外,我们还可以将时间序列分成多个不同的成分,以便它们的总和复原原始时间序列。一般而言,除了长期趋势外,还有三个不同的成分可能影响时间序列。首先,存在随机噪声,这会导致小的上下不稳定运动。在本章所示的所有时间序列中都可以看到这种噪声,但可能在图 14.9 中最清楚。其次,可能会有独特的外部事件在时间序列中留下痕迹,例如图 14.10 中所见的明显的房屋泡沫。第三,可能存在周期性变化。例如,室外温度表现出每日周期性变化。下午早些时候温度最高,清晨温度最低。室外温度也显示出每年的周期性变化。它们倾向于在春季上升,在夏季达到最大值,然后在秋季下降并在冬季达到最小值(图 3.2 )。

为了证明时间序列不同成分的概念,我将在此处分解基林曲线,其显示 CO2 丰度随时间的变化(图 14.12)。 CO2 以百万分率(ppm)测量。我们看到 CO2 丰度的长期增长略快于线性,从 20 世纪 60 年代的 325 ppm 以下到 21 世纪第二个十年的 400 以上(图 14.12)。 CO2 丰度也具有年度波动,在整体增长之上遵循一致的上下模式。年度波动是由北半球的植物生长推动的。植物在光合作用期间消耗 CO2 。由于全球大部分陆地都位于北半球,而且春季和夏季植物生长最活跃,我们看到全球大气 CO2 的年度下降与北半球的夏季月份相重合。

图 14.12:基林曲线。基林曲线显示了大气中 CO2 丰度随时间的变化。自 1958 年以来,CO2 的丰度一直在夏威夷的莫纳罗亚天文台进行监测,最初是在 Charles Keeling 的指导下进行的。这里显示的是月平均 CO2 读数,以百万分率(ppm)表示。 CO2 读数随季节而波动,但显示出一致的长期增长趋势。数据来源:NOAA/ESRL 的 Pieter Tans 博士和 Scripps 海洋学研究所的 Ralph Keeling 博士

我们可以将基林曲线分解为长期趋势,季节性波动和剩余部分(图 14.13 )。我在这里使用的具体方法称为 STL(使用 LOESS 的时间序列的季节性分解,RB Cleveland 等人,1990),但还有许多其他方法可以实现类似目标。分解表明,在过去的三十年中,CO2 丰度增加了 50ppm 以上。相比之下,季节性波动小于 8 ppm(相对于长期趋势,它们永远不会导致增加或减少超过 4 ppm),其余则小于 1.6 ppm(图 14.13)。剩余部分是实际读数与长期趋势和季节性波动之和之间的差异,这里它对应于每月 CO2 读数中的随机噪声。然而,更一般地,剩余部分也可以捕获独特的外部事件。例如,如果大规模的火山爆发释放出大量的 CO2,这种事件可能会被看作是剩余部分的突然飙升。图 14.13 表明,近几十年来没有这种独特的外部事件对基林曲线产生重大影响。

图 14.13:基林曲线的时间序列分解,显示月平均值(如图 14.12 ),长期趋势,季节性波动和剩余部分。剩余部分是实际读数与长期趋势和季节波动之和的差异,它代表随机噪声。我已经缩放到最近 30 年的数据,以更清楚地显示年度波动的形状。数据来源:NOAA/ESRL 的 Pieter Tans 博士和 Scripps 海洋学研究所的 Ralph Keeling 博士

参考

Cleveland, W. S. 1979. “Robust Locally Weighted Regression and Smoothing Scatterplots.” Journal of the American Statistical Association 74: 829–36.

Cleveland, R. B., W. S. Cleveland, J. E. McRae, and I. Terpenning. 1990. “STL: A Seasonal-Trend Decomposition Procedure Based on Loess.” Journal of Official Statistics 6: 3–73.

15 可视化地理空间数据

原文: 15 Visualizing geospatial data

校验:飞龙

自豪地采用谷歌翻译

许多数据集包含链接到物理世界中的位置的信息。例如,在生态学研究中,数据集可列出特定植物或动物被发现的位置。同样,在社会经济或政治背景下,数据集可能包含具有特定属性(如收入,年龄或教育程度)的人的居住地,或人造物体(如桥梁,道路,建筑物)所在地的信息。在所有这些情况下,在适当的地理空间环境中可视化数据,可能是有帮助的,即,在真实地图上显示数据或者作为类似地图的图形。

地图往往对读者来说很直观,但它们对设计来说可能很有挑战性。我们需要考虑地图投影之类的概念,以及对于我们的具体应用,角度或区域的准确表示是否更为关键。一种常见的映射技术,等值线图,包括空间区域,其中数据值表示为不同颜色。等值线图有时非常有用,而在其他时候则极具误导性。作为替代方案,我们可以构建称为统计地图,可以有目的地扭曲地图区域或以形式化形式表示它们,例如作为相等大小的正方形。

15.1 投影

地球大约是一个球体(图 15.1 ),更准确地说是一个沿其旋转轴稍微变平的扁球体。旋转轴与球体相交的两个位置称为极(北极和南极)。我们将球体分成两个半球,即北半球和南半球,通过在球体周围画一条到两极距离相等的线。这条线称为赤道。为了唯一地指定地球上的位置,我们需要三条信息:我们沿着赤道方向(经度)的位置,当垂直于赤道(纬度)移动时,我们到两极的距离(纬度),我们离地球中心有多远(海拔)。经度,纬度和海拔,相对于称为基准的参考系统指定。该数据指定了一些属性,例如地球的形状和大小以及零经度,纬度和海拔的位置等。一个广泛使用的数据是世界大地测量系统(WGS)84,它被全球定位系统(GPS)使用。

图 15.1:世界的正投影,显示欧洲和北非,因为它们可以从太空中看到。从北极发出并向南行进的线称为经线,与经线正交的线称为纬线。所有经线都有相同的长度,但随着我们越接近任一极,纬线越短。

虽然海拔是许多地理空间应用中的重要数量,但在以地图形式显示地理空间数据时,我们主要关注的是其他两个维度,即经度和纬度。经度和纬度都是角度,以度表示。经度衡量一个位置在东部或西部有多远。经度相等的线被称为经线(子午线),所有经线终止于两极(图 15.1 )。经度为 0° 的本初子午线贯穿英国的格林威治村。与本初子午线相对的经线位于 180° 经度(也称为 180°E),相当于 -180° 经度(也称为 180°W),接近国际日期线。纬度测量位置在北边或南边有多远。赤道对应于 0° 纬度,北极对应于 90° 纬度(也称为 90°N),南极对应于 -90° 纬度(也称为 90°S)。纬度相等的线被称为纬线(平行线),因为它们与赤道平行。所有经线都具有相同的长度,相当于全球大圆的一半,而纬线的长度取决于它们的纬度(图 15.1 )。最长的纬线是赤道,纬度为 0°,最短的纬线位于北极和南极,90°N 和 90°S,长度为零。

地图制作中的挑战是,我们需要选取地球的球形表面并将其展平,以便我们可以将其显示在地图上。这个过程称为投影,必然会引入扭曲,因为曲面不能精确地投射到平面上。具体地说,投影可以保留角度或面积,但不能同时保留两者。前者的投影称为共形,后者的投影称为等面积。其他投影可以既不保留角度也不保留面积,而是保留其他兴趣量,例如到某个参考点或线的距离。最后,一些投影尝试在保留角度和面积之间达成平衡。这些折衷投影经常用于以美学上令人愉悦的方式显示整个世界,并且它们接受一定的角度和面积失真(图 3.11 )。为了系统化和跟踪为特定地图投射部分或全部地球的不同方式,各种标准组织和机构,如 EPSG(欧洲石油调查组)或 ESRI(环境系统研究所),维护投影登记处。例如,EPSG:4326 表示 GPS 使用的 WGS 84 坐标系中,未投影的经度和纬度值。有几个网站可以方便地访问这些已注册的投影,包括 spatialreference.orgepsg.io

墨卡托投影是最早使用的地图投影之一,于 16 世纪开发用于航海导航。它是一个精确表示形状的共形投影,但在极点附近引入了严重的面积扭曲(图 15.2 )。墨卡托投影将地球映射到圆柱体上,然后展开圆柱体以获得矩形地图。该投影中的经线是均匀间隔的垂直线,而纬线是水平线,当我们远离赤道时,其间距变大(图 15.2 )。平行线之间的间距与它们必须拉伸来接近极点的程序成正比,来保持经线完全垂直。

图 15.2:世界的墨卡托投影。在该投影中,纬线是直的水平线,经线是直的垂直线。它是保持局部角度的共形投影,但它向极点附近的面积引入了严重的失真。例如,在这一投影中,格陵兰岛似乎比非洲大,而实际上非洲比格陵兰岛大十倍(见图 15.1 和 15.3 )。

由于它产生了严重的面积扭曲,墨卡托投影已经失去了整个世界对地图的青睐。但是,这一投影的变体仍继续存在。例如,横向墨卡托投影通常用于大尺寸地图,在较大放大率下显示中小区域(经度跨度小于几度)。另一个变体,Web 墨卡托投影,由谷歌用于谷歌地图,并被几个在线地图应用使用。

一个完全保留面积的全球投影是 Goode homolosine(图 15.3 )。它通常以断续的形式显示,在北半球有一个切口,在南半球有三个切口,经过精心挑选,因此它们不会中断大陆块(图 15.3 )。这些切割使投影能够保护面积并大致保留角度,代价是海洋不连续,穿过格陵兰岛中部,以及穿过南极洲的几次切割。虽然被中断的 Goode homolosine 具有不同寻常的美学和奇怪的名称,但对于需要在全球范围内精确重制面积的地图应用来说,它是一个不错的选择。

图 15.3:世界的中断的 Goode homolosine 投影。这种投影可以精确地保留面积,同时最大限度地减少角度扭曲,但代价是以不连续的方式显示海洋和一些陆地(格陵兰,南极洲)。

当我们试图绘制整个世界的地图时,由于地图投影导致的形状或面积扭曲尤为突出,但即使在各个大陆或国家的规模上也会造成麻烦。例如,考虑美国,其中包括 48 个本土州,阿拉斯加和夏威夷(图 15.4)。虽然单独 48 个州可以很容易地投射到地图上,但阿拉斯加和夏威夷距离较远,将所有 50 个州投射到一张地图上变得麻烦。

图 15.4:地球上显示的阿拉斯加,夏威夷和 48 个州的相对位置。

图 15.5 显示了使用等面积 Albers 投影制作的所有 50 个州的地图。该投影提供了 50 个州的相对形状,面积和位置的合理表示,但我们注意到一些问题。首先,与其外观相比,阿拉斯加看起来很奇怪,例如,图 15.2 或 15.4 。其次,地图以海洋/空的空间为主。如果我们可以进一步放大,那将是更好的选择,以便较低的 48 个州占据较大比例的地图面积。

图 15.5:美国地图,使用保留面积的 Albers 投影(ESRI:102003,通常用于投影 48 个州)。阿拉斯加和夏威夷的真实位置显示了出来。

为了解决空的空间的问题,通常的做法是分别投射阿拉斯加和夏威夷(来尽量减少形状扭曲),然后移动它们,使它们显示在 48 个州下方(图 15.6 )。您可能会注意到图 15.6 中阿拉斯加相对于 48 个州看起来比图 15.5 中的小得多。造成这种差异的原因是,阿拉斯加不仅已被移动,而且已经扩大规模,因此其规模与典型的中西部或西部各州相当。这种扩展虽然是常见的做法,却极具误导性,因此我将这个图形标记为“不好”。

图 15.6:美国的可视化,阿拉斯加州和夏威夷州位于 48 个州的下方。阿拉斯加也已按比例调整,因此其线性规模仅为该州实际规模的 35%。 (换句话说,该州的面积已减少到其真实尺寸的大约 12%。)这种缩放经常应用于阿拉斯加,使其在视觉上看起来与典型的中西部或西部州相似。然而,缩放是非常误导的,因此该图形被标记为“不好”。

我们可以在不改变其规模的情况下移动它,而不是移动和缩放阿拉斯加(图 15.7 )。这种可视化清楚地表明,阿拉斯加州是最大的州,面积超过德克萨斯州的两倍。我们不习惯看到以这种方式显示的美国,但在我看来,这是 50 个州的一个更合理的表示,而不是图 15.6 。

图 15.7:美国的可视化,阿拉斯加州和夏威夷州位于 48 个州的下方。

15.2 层

为了在适当的上下文中可视化地理空间数据,我们通常创建由多个层组成的地图,显示不同类型的信息。为了证明这一概念,我将想象一下旧金山湾区风力涡轮机的位置。在湾区,风力涡轮机聚集在两个位置。一个位置,我将其称为 Shiloh 风电场,位于 Rio Vista 附近,另一个位于 Hayward 以东靠近 Tracy(图 15.8 )。

图 15.8:旧金山湾区的风力涡轮机。单个风力涡轮机显示为紫色点。具有高密度风力涡轮机的两个区域用黑色矩形突出显示。我将 Rio Vista 附近的风力涡轮机统称为 Shiloh 风电场。地图由 Stamen Design 制作,以 CC BY 3.0 授权。地图数据来自 OpenStreetMap,以 ODbL 授权。风力涡轮机数据:美国风力涡轮机数据库

图 15.8 由四个独立的层组成。在底部,我们有地形层,显示山丘,山谷和水。下一层显示道路网络。在路面层的顶部,我放置了一个指示单个风力涡轮机位置的层。该层还包含突出大部分风力涡轮机的两个矩形。最后,顶层添加城市的位置和名称。这四层在图 15.9 中单独显示。对于我们想要制作的任何给定地图,我们可能想要添加或删除其中一些层。例如,如果我们想要绘制投票区的地图,我们可能会认为地形信息无关紧要并且分散注意力。或者,如果我们想要绘制暴露或屋顶覆盖区域的地图,来评估太阳能发电的潜力,我们可能希望用显示单个屋顶和实际植被的卫星图像替换地形信息。您可以在大多数在线地图应用(例如 Google 地图)中,以交互方式尝试这些不同类型的层。我想强调的是,无论我们决定保留或删除哪些层,通常建议添加比例尺和北向箭头。比例尺有助于读者了解地图中显示的空间要素的大小,而北向箭头则可以明确地图的方向。

图 15.9:图 15.8 的各个层。从下到上,图形由地形层,道路层,显示风力涡轮机的层和标记城市的层,以及添加比例尺和北向箭头组成。地图由 Stamen Design 制作,以 CC BY 3.0 授权。地图数据来自 OpenStreetMap,以 ODbL 授权。风力涡轮机数据:美国风力涡轮机数据库

将数据映射到美学的第二章中讨论的所有概念都转移到了地图上。我们可以将数据点放入其地理环境中,并通过颜色或形状等美学显示其他数据维度。例如,图 15.10 提供了图 15.8 中标有“Shiloh Wind Farm”的矩形的放大视图。各个风力涡轮机显示为点,点的颜色表示特定涡轮机何时建造,并且形状代表风力涡轮机所属的项目。像这样的地图可以简单概述区域的开发方式。例如,在这里我们看到 EDF Renewables 是一个相对较小的项目,建于 2000 年之前,High Winds 是一个中等规模的项目,建于 2000 年到 2004 年之间,Shiloh 和 Solano 是该地区最大的两个项目,两个项目都建立了很长一段时间。

图 15.10:Shiloh 风电场中各个风力涡轮机的位置。每个点突出显示一个风力涡轮机的位置。地图区域对应于图 15.8 中的矩形。点的颜色代表风力涡轮机的建造时间,并且点的形状代表各个风力涡轮机所属的各种项目。地图由 Stamen Design 制作,以 CC BY 3.0 授权。地图数据来自 OpenStreetMap,以 ODbL 授权。风力涡轮机数据:美国风力涡轮机数据库

15.3 等值线图

我们经常想要展示一些数量在不同地点的变化情况。我们可以通过根据我们想要显示的数据维度对地图中的各个区域进行着色来实现。这种地图称为等值线图。

举一个简单的例子,考虑美国各地的人口密度(每平方公里人数)。我们取美国每个县的人口数量,除以县的面积,然后绘制一个地图,每个县的颜色对应于人口数量和面积之间的比例(图 15.11) 。我们可以看到,东部和西部海岸线上的主要城市是美国人口最多的地区,大平原和西部各州人口密度低,阿拉斯加州人口最少。

图 15.11:美国每个县的人口密度,以等值线图形示。人口密度报告为每平方公里人数。数据来源:2015 年五年美国社区调查

图 15.11 使用浅色表示低人口密度和深色表示高密度,因此高密度都市区域在浅色背景上突出显示为深色。当图形的背景颜色较浅时,我们倾向于将较暗的颜色与较高的强度相关联。但是,我们也可以在深色背景上选择高值较浅的颜色刻度(图 15.12 )。只要较浅的颜色落入红黄色光谱中,使它们看起来发光,它们就可以被认为代表更高的强度。作为一般原则,当图形打印在白纸上时,浅色背景区域(如图 15.11 )通常会更好。对于在线观看或在深色背景上,深色背景区域(如图 15.12 )可能更好。

图 15.12:美国每个县的人口密度,以等值线图形示。该图与图 15.11 相同,不同之处在于现在颜色刻度的浅色用于高人口密度,和深色用于低人口密度。数据来源:2015 年五年美国社区调查

当着色代表密度(即,一些量除以表面积,如图 15.11 和 15.12 )时,等值线最佳。我们认为较大的区域对应于较大的总量而不是较小的总量(另见关于比例墨水的章节,第十七章),并且密度的阴影校正了这种影响。然而,在实践中,我们经常看到根据一些非密度量着色的等值线。例如,在图 4.4 中,我显示了德克萨斯州的年收入中位数的等值线。这些等值线图要谨慎准备。我们可以通过两种条件对非密度量进行颜色映射:首先,如果我们着色的所有区域具有大致相同的大小和形状,那么我们不必担心,某些区域仅仅因为他们的大小,而获得不成比例的关注。其次,如果我们着色的各个区域相对于地图的整体尺寸相对较小,并且如果颜色所代表的数量,在比单个着色区域大的规模上发生变化,那么我们再次不必担心某些区域仅仅由于它们的大小而获得不成比例的注意力。图 4.4 中大致满足这两个条件。

在等值线图中考虑连续与离散颜色刻度的影响也很重要。虽然连续的颜色刻度往往看起来很吸引人(例如,图 15.11 和 15.12 ),但它们可能难以阅读。我们不太擅长识别特定的颜色值并将其与连续刻度相匹配。因此,通常将数据值分组为用不同颜色表示的离散组。大约四到六个箱是一个不错的选择。分箱会牺牲一些信息,但另一方面,分箱颜色可以被唯一识别。例如,图 15.13 将德克萨斯州的收入中位数图(图 4.4 )扩展到美国所有县,并使用由五个不同收入箱组成的颜色刻度。

图 15.13:美国每个县的收入中位数,显示为等值线图。收入中位数值被分为五个不同的组,因为分箱颜色刻度度通常比连续颜颜色刻度度更容易阅读。数据来源:2015 年五年美国社区调查

虽然整个美国的县的大小和形状都不像德克萨斯州那样,但我认为图 15.13 仍然可以作为一个等值线图。没有个别的县过度主导地图。但是,当我们在州一级绘制一张类似的地图时,情况会有所不同(图 15.14 )。然后阿拉斯加主导了等值线,并且由于其规模,表明收入中位数超过 70,000 美元是常见的。然而,阿拉斯加人口稀少(参见图 15.11 和 15.12 ),因此阿拉斯加的收入水平仅适用于美国人口的一小部分。绝大多数美国县,其人口比阿拉斯加州的人口都要多,收入中位数低于 60,000 美元。

图 15.14:美国每个州的收入中位数,显示为等值线图。这张地图在视觉上由阿拉斯加州主导,阿拉斯加州的收入中位数很高但人口密度很低。与此同时,东海岸人口密集的高收入州在这张地图上看起来并不十分突出。总的来说,这张地图提供了美国收入分布的可视化,因此我将其标记为“不好”。数据来源:2015 年五年美国社区调查

15.4 统计地图

并非每个类似地图的可视化都必须在地理上准确才有用。例如,图 15.14 的问题在于,一些州占据了相对较大的区域,但人口稀少,而其他州占据了一小块区域,但却拥有大量居民。如果我们对各州进行变形,使其规模与居民人数成比例怎么样?这样的修改后的地图称为统计地图,图 15.15 显示了收入中位数数据集的外观。我们仍然可以识别个别州,但我们也看到,形状的调整如何产生了重要的修改。东海岸各州,佛罗里达州和加利福尼亚州的规模增长很多,而其他西部州和阿拉斯加州则已经折叠。

图 15.15:美国每个州的收入中位数,以统计地图的形式显示。各个州的形状已被修改,使得它们的面积与居民的数量成比例。数据来源:2015 年五年美国社区调查

作为具有扭曲形状的统计地图的替代方案,我们还可以绘制更简单的统计热图,其中每个州由彩色方块表示(图 15.16 )。虽然这种表示不能纠正每个州的人口数量,因此低度表示代表人口较多的州,并过度表示人口较少的州,但至少它平等地对待所有州,并且不会根据其形状或大小任意权衡它们。

图 15.16:美国每个州的收入中位数,显示为统计热图。每个州由相同大小的方块表示,并且方块根据每个州相对于其他州的近似位置来排列。该表示为每个州提供相同的视觉权重。数据来源:2015 年五年美国社区调查

最后,我们可以通过在每个州的位置放置单独的绘图,来绘制更复杂的统计地图。例如,如果我们想要了解每个州的失业率随时间的演变,为每个州绘制一个单独的图形,然后根据各州之间的近似相对位置排列图形(图 15.17 )有所帮助。对于熟悉美国地理的人来说,这种排列可以使得更容易找到特定州的图形而不是,例如,按字母顺序排列它们。此外,人们会期望相邻州显示类似的模式,图 15.17 表明情况确实如此。

图 15。17:各州在 2008 年金融危机之前和之后的失业率。每个面板显示一个州的失业率,包括哥伦比亚特区(DC),从 2007 年 1 月至 2013 年 5 月。垂直网格线标记 2008 年,2010 年和 2012 年 1 月。地理位置接近的州在失业率方面往往表现出类似的趋势。数据来源:美国劳工统计局

欢迎

原文: Welcome

校验:飞龙

自豪地采用谷歌翻译

本书旨在作为制作可视化,准确反映数据,讲述故事和看起来很专业的指南。它源于我和实验室中的学生和博士后在数千个数据可视化上的合作经验。多年来,我注意到同样的问题一再出现。我试图以本书的形式从这些互动中收集我积累的知识。

整本书都是用 R Markdown 编写的,使用 RStudio 作为我的文本编辑器,以及 bookdown 包来将一系列 Markdown 文档转换为连贯的整体。该书的源代码托管在 GitHub 上, clauswilke/dataviz。如果您发现拼写错误或其他问题,请随时在 GitHub 上新建 Issue 或提交拉取请求。如果您执行后者,请在提交消息中添加“I assign the copyright of this contribution to Claus O. Wilke”(我将此贡献的版权赋予 Claus O. Wilke),以便我可以保留以其他形式发布本书的选项。

中文版采用 CC BY-NC-SA 4.0 许可协议授权,原书采用 CC BY-NC-ND 4.0 许可协议授权。

16 可视化不确定性

原文: 16 Visualizing uncertainty

校验:飞龙

自豪地采用谷歌翻译

数据可视化最具挑战性的方面之一是不确定性的可视化。当我们看到在特定位置绘制的数据点时,我们倾向于将其解释为真实数据值的精确表示。很难想象数据点实际上可能位于尚未绘制的某个位置。然而,这种情况在数据可视化中无处不在。几乎我们使用的每个数据集都有一些不确定性,我们选择表示这种不确定性的方式,对我们的受众多么准确地感知数据的含义,可能产生重大影响。

指示不确定性的两种常用方法,是误差条和置信带。这些方法是在科学出版物的背景下开发的,它们需要正确解释一些专业知识。然而,它们精确且节省空间。例如,通过使用误差条,我们可以在单个图中显示许多不同参数估计值的不确定性。然而,对于非专业读者而言,产生不确定性的强烈直观印象的可视化策略可能更好,即使它们的代价是降低可视化精度或减少密集数据的展示。这里的选项包括频率成帧,我们以近似比例明确绘制不同的可能场景,或者循环不同可能场景的动画。

16.1 将概率表现为频率

在我们讨论如何可视化不确定性之前,我们需要定义它实际上是什么。我们可以在未来事件的背景下直观掌握不确定性的概念。如果我要翻硬币,我不知道结果会是什么样。最终的结果是不确定的。不过,我也不确定过去的事件。如果昨天我从我的厨房窗户向外看了两次,一次是在早上 8 点,一次是在下午 4 点,我在早上 8 点看到一辆红色汽车停在街对面,下午 4 点没有,然后我可以总结,汽车在八小时的时间窗口中的某个时间点离开了,但我不确切知道是什么时候。可能是上午 8:01,上午 9:30,下午 2 点,或者在这八个小时的任何其他时间。

在数学上,我们通过使用概率概念来处理不确定性。概率的精确定义很复杂,远远超出了本书的范围。然而,我们可以在不了解数学的所有错综复杂的细节的情况下,成功地推导概率。对于许多实际相关的问题,考虑相对频率就足够了。假设您执行某种随机试验,例如掷硬币或掷骰子,并寻找特定结果(例如,正面或六点)。你可以称这个结果为成功,和任何其他结果为失败。然后,如果你一遍又一遍地重复随机试验,成功的概率大约由你看到结果的一小部分给出。例如,如果特定结果以 10% 的概率发生,那么我们预计在许多重复试验中,结果将在大约十分之一的情况中出现。

可视化单个概率很困难。你如何可视化在彩票中获胜,或者用匀质的骰子掷出六点的几率?在这两种情况下,概率都是单个数字。我们可以将该数字视为一个数量,并使用第六章中讨论的任何技术显示它,例如条形图或点图,但结果不会非常有用。大多数人缺乏概率值如何转化为经验现实的直观理解。将概率值显示为条形或作为点放在一条线上,无助于此问题。

我们可以通过创建一个图形,强调随机试验的频率切面和不可预测性,来使概率概念变得有形,例如通过绘制随机排列的不同颜色的方块。在图 16.1 中,我使用这种技术可视化三种不同的概率,1% 的成功几率,10% 的成功几率和 40% 的成功率。为了阅读这个图,想象一下,你得到了一个选择深色方块的任务,通过选择一个方块,然后看到哪个方块是深色,哪个方块是浅色。 (如果你愿意的话,你可以考虑闭着眼睛挑选一个方块。)直观地说,你可能会理解在 1% 几率情况下,不太可能选择一个深色的方块。同样,在 10% 几率 的情况下,仍然不太可能选择深色的方块。然而,在 40% 的情况下,胜率看起来并不那么糟糕。这种可视化风格,其中我们显示特定的潜在结果,被称为离散结果可视化,并且将概率可视化为频率的行为被称为频率成帧。我们根据易于理解的结果的频率来表现结果的概率性质。

图 16.1:将概率可视化为频率。每个网格中有 100 个方块,每个方块表示在某些随机试验中成功或失败。 1% 的成功几率对应于一个深色和 99 个浅色方块,10% 的成功几率对应于十个深色和 90 个浅色方块,并且 40% 的成功几率对应于 40 个深色和 60 个浅色方块。通过在浅色方块中随机放置深色方块,我们可以创建随机性的视觉印象,强调单个试验结果的不确定性。

如果我们只对两个不连续的结果(成功或失败)感兴趣,那么诸如图 16.1 之类的可视化就可以正常工作。然而,我们经常处理更复杂的情况,其中随机试验的结果是数字变量。一个常见的情况是选举预测,我们不仅对谁将获胜而且对多少人感兴趣。让我们考虑一个假设的例子,即即将举行的选举,包括黄方和蓝方。假设您在广播中听到蓝方预计比黄方有一个百分点的优势,误差率为 1.76 个百分点。这些信息告诉你选举的可能结果是什么?听到“蓝方会赢”是人类本性,但现实更为复杂。首先,最重要的是,有一系列不同的可能结果。蓝方最终可能以 2 个百分点的领先优势赢得选举,或者黄方最终以半个百分点的领先优势获胜。可能结果的范围及其相关可能性称为概率分布,我们可以将其绘制为平滑曲线,该曲线上升然后落在可能结果的范围内(图 16.2 )。特定结果的曲线越高,结果越可能。概率分布与第七章中讨论的直方图和核密度密切相关,您可能需要重新阅读该章以刷新记忆。

图 16.2:选举结果的假设预测。预计蓝方将赢得黄方约一个百分点(标记为“最佳估计值”),但该预测存在误差幅度(它覆盖 95% 的可能结果,以最佳预测为中心,两个方向上的 1.76 个百分点)。蓝色阴影区域占总数的 87.1%,代表蓝色获胜的所有结果。同样,黄色阴影区域占总数的 12.9%,代表黄色获胜的所有结果。在这个例子中,蓝色有 87% 的机会赢得选举。

通过做一些数学计算,我们可以计算出,对于我们的例子,黄方获胜的几率是 12.9%。因此,黄方获胜的几率比图 16.1 中显示的 10% 几率情况要好一些。如果你喜欢蓝方,你可能不会过于担心,但黄方有足够的获胜几率,他们可能碰巧成功。如果将图 16.2 与图 16.1 进行比较,您可能会发现图 16.1 在结果中创造了更好的不确定性的感觉,即使阴影区域在图 16.2 准确地表示蓝方或黄方获胜的概率。这是离散结果可视化的力量。对人类感知的研究表明,我们在识别,计数和判断离散物体的相对频率方面要好得多 - 只要它们的总数不是太大 - 而不是判断不同区域的相对大小。

我们可以通过绘制分位数点图(Kay 等人 2016)将图 16.1 的离散结果性质与图 16.2 中的连续分布相结合)。在分位数点图中,我们将曲线下的总面积细分为均匀大小的单位,并将每个单位绘制为圆形。然后我们堆叠圆形使得它们的排列大致代表原始分布曲线(图 16.3 )。

图 16.3:图 16.2 的选举结果分布的分位数点图形示。 (a)平滑分布用 50 个点近似,每个代表 2% 的几率。因此,六个黄点对应的概率为 12%,合理接近 12.9% 的真实值。 (b)平滑分布近似为 10 个点,每个点几率为 10%。因此,一个黄点对应 10% 的几率,仍然接近真实值。具有较少数量点的分位数点图往往更容易阅读,因此在该示例中,10 点版本可能优于 50 点版本。

作为一般原则,分位点点图应使用小到中等数量的点。如果点太多,那么我们倾向于将它们视为连续体而不是单独的离散单位。这抵消了离散图的优点。图 16.3 显示具有 50 个点(图 16.3a)和 10 个点(图 16.3b)的变体。虽然 50 个点的版本更准确地捕获真实的概率分布,但是点的数量太大而不能容易地区分各个点。十个点的版本立即传达了蓝方或黄方获胜的相对几率。对十个点的版本的一个缺陷可能是它不是很精确。我们对黄方获胜的几率过少表示为 2.9 个百分点。然而,通常值得牺牲一些数学精度,来获得所得可视化的更准确的人类感知,特别是在与非专业读者进行交流时。在数学上正确但感知上不正确的可视化在实践中没有用。

16.2 可视化点估计的不确定性

在图 16.2 中,我显示了“最佳估计值”和“误差幅度”,但我没有解释这些量究竟是什么或者如何获得它们。为了更好地理解它们,我们需要快速介绍统计抽样的基本概念。在统计数据中,我们的首要目标是通过查看世界的一小部分来了解世界。继续选举的例子,假设有许多不同的选区,每个选区的公民都要为蓝方或黄方投票。我们可能想要预测每个选区的投票方式,以及各地区的整体投票均值(平均值)。为了在选举前做出预测,我们不能对每个选区的每个公民进行民意调查,来了解他们将如何投票。相反,我们必须轮询选区子集的公民子集,并使用这些数据得出最佳猜测。在统计语言中,所有选区所有公民的可能投票总数称为总体,我们调查的公民和/或选区的子集是样本。总体代表了世界的潜在真实状态,样本是我们进入这个世界的窗口。

我们通常对汇总总体重要属性的具体数量感兴趣。在选举的例子中,这些可能是跨选区的投票结果的均值或选区结果之间的标准差。描述总体的数量称为参数,并且它们通常是不可知的。但是,我们可以使用样本来猜测真实参数值,统计学家将这些猜测称为估计值。样本均值是总体均值的估计值,这是一个参数。各个参数值​​的估计值也称为点估计,因为每个参数值可以由线上的点表示。

图 16.4 显示了这些关键概念如何相互关联。兴趣变量(例如,每个选区的投票结果)在总体中具有一些分布,总体具有总体平均值和总体标准差。样本将包含一组特定的观测值。样本中单个观测值的数量称为样本大小。从样本中我们可以计算样本均值和样本标准差,这些通常与总体均值和标准差不同。最后,我们可以定义采样分布,如果我们多次重复采样过程,它是我们将获得的估计分布。采样分布的宽度称为标准误差,它告诉我们估计的精确程度。换句话说,标准误差提供了与我们的参数估计值相关的不确定性的度量。作为一般规则,样本量越大,标准误差越小,因此估计的不确定性越小。

图 16.4:统计抽样的关键概念。我们正在研究的兴趣变量在总体中具有一些真实的分布,具有真实的总体平均值和标准差。该变量的任何有限样本将具有样本均值和标准差,与总体参数不同。如果我们每次重复采样并计算平均值,则所得均值遵循均值的采样分布。标准误差提供采样分布宽度的信息,告诉我们估计兴趣参数(这里是总体平均值)的准确程度。

至关重要的是,我们不要混淆标准差和标准误差。标准差是总体的属性。它告诉我们,我们可以做出的个别观测值的分散程度。例如,如果我们考虑投票区的总体,标准差告诉我们不同的选域的差异是多少。相比之下,标准误差告诉我们,我们确定参数估计值的准确程度。如果我们想估计所有选区的投票结果均值,那么标准误差会告诉我们对均值的估计有多准确。

所有统计学家都使用样本来计算参数估计值及其不确定性。然而,他们将这些计算方式分为贝叶斯主义者和频率论者。贝叶斯假设他们对世界有一些先验知识,他们使用样本来更新这些知识。相比之下,频率论者试图在没有任何先验知识的情况下,对世界做出精确的陈述。幸运的是,当涉及可视化不确定性时,贝叶斯和频率论者通常可以采用相同类型的策略。在这里,我将首先讨论频率论方法,然后描述贝叶斯环境特有的一些特定问题。

频率论者最常用误差条来表示不确定性。虽然误差条可用作不确定性的可视化,但它们并非没有问题,我在第九章中已经提到(见图 9.1 )。读者很容易对误差条代表什么感到困惑。为了突出这个问题,在图 16.5 中,我展示了同一数据集的误差条的五种不同用法。该数据集包含巧克力棒的专家评级,针对在许多不同国家制造的巧克力棒,评级为 1 至 5。对于图 16.5 ,我提取了加拿大制造的巧克力棒的所有评级。样本显示为分散点的条带图,在它下方,我们看到样本均值加/减样本标准差,样本均值加/减标准误差,以及 80%,95% 和 99% 置信区间。所有五个误差条都来自样本中的变化,它们都是数学上相关的,但它们具有不同的含义。它们在视觉上也非常独特。

图 16.5:巧克力棒评级示例中的样本,样本均值,标准差,标准误差和置信区间之间的关系。组成样本的观测值(显示为分散的绿点)代表来自加拿大制造商的 125 个巧克力棒的专家评级,评级从 1(最差)到 5(最好)。较大橙色点代表评级的平均值。误差条从上到下表示标准差的两倍,标准误差的两倍(平均值的标准差),以及平均值的 80%,95% 和 99% 置信区间。数据来源:曼哈顿巧克力学会 Brady Brelinski

每当您使用误差条显示不确定性时,您必须指定误差条表示的数量和/或置信度。

标准误差近似为样本标准差除以样本大小的平方根,置信区间是通过将标准误差乘以小的常数值来计算的。例如,95% 置信区间在平均值的任一方向上延伸约为标准误差的两倍。因此,较大的样本往往具有较窄的标准误差和置信区间,即使它们的标准差相同。当我们比较加拿大巧克力棒和瑞士巧克力棒的评级时,我们可以看到这种效应(图 16.6 )。加拿大和瑞士巧克力棒的评级均值和样本标准差相当,但我们对 125 加拿大棒和 38 瑞士棒进行评级,因此瑞士棒的均值的置信区间要宽得多。

图 16.6:随着样本量的缩小,置信区间变宽。来自加拿大和瑞士的巧克力棒具有可比较的评级均值和可比较的标准差(用简单的黑色误差条表示)。然而,被评级的加拿大巧克力棒是瑞士的三倍,因此瑞士的评级均值(用不同颜色和厚度的误差条表示)的置信区间,比加拿大要宽。数据来源:曼哈顿巧克力学会 Brady Brelinski

在图 16.6 中,我同时显示三个不同的置信区间,使用较暗的颜色和较粗的线条表示较低置信度的区间。我将这些可视化称为分级误差条。分级有助于读者认识到存在一系列不同的可能性。如果我向一组人显示简单的误差条(没有分级),则至少其中一些人可能会以确定性的方式感知误差条,例如表示数据的最小值和最大值。或者,他们可能认为误差条描绘了参数估计值的可能范围,即,估计值永远不会落在误差条之外。这些类型的误解称为确定性解释错误。我们越能将确定性解释错误的风险降至最低,我们对不确定性的可视化就越好。

误差条很方便,因为它们允许我们同时显示许多估计值及其不确定性。因此,它们通常用于科学出版物,其主要目标通常是向专业读者传达大量信息。作为此类应用的一个例子,图 16.7 显示了在六个不同国家生产的巧克力棒的巧克力评级均值和相关置信区间。

图 16.7:来自六个不同国家的制造商的巧克力棒的巧克力风味评级均值和相关置信区间。数据来源:曼哈顿巧克力学会 Brady Brelinski

在查看图 16.7 时,您可能想知道,它告诉我们关于评级均值的差异的什么事情。加拿大,瑞士和奥地利的评级均值高于美国,但考虑到这些评级均值的不确定性,均值有显着差异吗?这里的“显着”一词是统计学家使用的技术术语。如果我们有一定程度的置信度,可以拒绝观察到的差异是由随机抽样引起的假设,我们称差异显着。由于仅仅有限数量的加拿大和美国巧克力棒得到了评级,评估者可能会意外地考虑更多更好的加拿大巧克力棒和更少更好的美国巧克力棒,而这种随机几率可能像是加拿大对美国巧克力棒的系统评级优势。

评估图 16.7 的显著性是困难的,因为加拿大和美国的评级均值都有不确定性。两个不确定性都对均值是否不同很重要。统计教科书和在线教程有时会发布,如何根据误差条重叠或不重叠的程度来判断重要性的经验法则。但是,这些经验法则不可靠,应该避免。评估评级均值是否存在差异的正确方法是计算差异的置信区间。如果这些置信区间不包括零,那么我们知道在相应的置信水平上差异是显着的。对于巧克力评级数据集,我们看到只有来自加拿大巧克力棒的评级明显高于美国(图 16.8)。对于瑞士的巧克力棒,差异的 95% 置信区间几乎不包括零值。因此,美国和瑞士巧克力棒的评级均值之间的差异在 5% 水平上几乎不显着。最后,根本没有证据表明奥地利巧克力棒的评级均值系统高于美国。

图 16.8:来自五个不同国家的制造商的巧克力风味评级均值,相对于美国巧克力棒的评级均值。加拿大巧克力棒的评级明显高于美国。对于其他四个国家,在 95% 置信水平下,与美国的评级均值没有显着差异。使用 Dunnett 方法对多个比较调整了置信水平。数据来源:曼哈顿巧克力学会 Brady Brelinski

在前面的图中,我使用了两种不同类型的误差条,分级和简单。更多变体是可能的。例如,我们可以在末尾绘制带或不带帽子的误差条(图 16.9a,c 对比图 16.9b,d)。所有这些选择都有优点和缺点。分级误差条突出显示对应于不同置信水平的不同区间的存在。然而,这些附加信息的另一面是增加了视觉噪声。根据图形的复杂程度和信息密集程度,简单的误差条可能优于分级条形图。是否绘制带有或不带帽子的误差条主要是个人品味的问题。帽子突出显示误差条的结束位置(图 16.9 a,c),而没有帽子的误差条同样强调整个区间范围(图 16.9b, d)。此外,再次,帽子增加了视觉噪声,因此在具有许多误差条的图中省略帽子可能是优选的。

图 16.9:来自四个不同国家的制造商的巧克力风味评级均值,相对于美国巧克力棒的评级均值。每个面板使用不同的方法来可视化相同的不确定性信息。 (a)带帽子的分级误差条。 (b)无帽子的分级误差条。 (c)带帽子的单区间误差条。 (d)无帽子的单区间误差条。 (e)置信带。 (f)置信分布。

作为误差条的替代方案,我们可以绘制逐渐消失的置信带(图 16.9 e)。置信带更好地传达了不同值的可能性,但它们很难阅读。我们必须在视觉上整合不同的颜色阴影,来确定特定置信度结束的位置。从图 16.9 中我们可以得出结论,秘鲁巧克力棒的评级均值明显低于美国巧克力棒,但事实并非如此。当我们显示明确的置信度分布时会出现类似的问题(图 16.9 f)。很难在视觉上整合曲线下面积,并确定给定置信水平的确切位置。然而,通过绘制分位数点图可以稍微减轻这个问题,如图 16.3。

对于简单的二维图形,误差条比更复杂的不确定性显示具有一个重要优势:它们可以与许多其他类型的图形组合。对于我们可能具有的几乎任何可视化,我们可以通过添加误差条来添加一些不确定性指示。例如,我们可以通过绘制带有误差条的条形图,来显示具有不确定性的数量(图 16.10)。这种类型的可视化通常用于科学出版物中。我们还可以在散点图中沿 xy 方向绘制误差条(图 16.11)。

图 16.10:四种牛的牛奶的平均乳脂含量。误差条表示平均值加减一个标准误差。这种可视化在科学文献中经常出现。虽然它们在技术上是正确的,但它们既不很好地代表每个类别中的变化,也不代表样本的不确定性。有关单个品种中乳脂含量的变化,请参见图 7.11。数据来源:加拿大纯种奶牛的表现记录

图 16。11:宾夕法尼亚州 67 个县的收入中位数与年龄中位数。误差条表示 90% 置信区间。数据来源:2015 年美国五年社区调查

让我们回到频率论者和贝叶斯主义者的话题。频率论者用置信区间评估不确定性,而贝叶斯学家计算后验分布和可信区间。贝叶斯后验分布告诉我们,给定输入数据的特定参数估计值的可能性。可信区间表示一个值的范围,参数值以给定概率位于其中,就像从后验分布中计算一样。例如,95% 的可信区间对应于后验分布的中间 95%。真实参数值有 95% 的可能性处于 95% 可信区间。

如果您不是统计学家,您可能会对我对可信区间的定义感到惊讶。您可能认为它实际上是置信区间的定义。它不是。贝叶斯可信区间告诉您真实参数可能在哪里,频率论置信区间告诉您真实参数可能不在哪里。虽然这种区别可能看起来像语义上的,但两种方法之间存在重要的概念差异。在贝叶斯方法下,您使用数据和您之前的所研究系统的知识(称为先验)来计算概率分布(后验),告诉您可以预期真实参数值位于哪里。相比之下,在频率论方法下,你首先假设你打算拒绝。该假设被称为零(原)假设,并且通常简单地假设参数等于零(例如,两个条件之间没有差异)。然后计算随机抽样生成的数据,类似于零假设为真时的观测数据的概率。置信区间是该概率的表示。如果给定置信区间排除零假设下的参数值(即零值),则可以在该置信水平拒绝零假设。或者,您可以将置信区间视为一个区间,它以指定可能性在重复采样下捕获真实参数值(图 16.12 )。因此,如果真实参数值为零,则 95% 置信区间仅在 5% 的分析样本中排除零。

图 16.12:置信区间的频率解释。最好在重复采样的背景下理解置信区间(CI)。对于每个样本,特定置信区间包括或排除真实参数,这里是平均值。但是,如果我们重复采样,那么置信区间(此处显示为 68% 置信区间,对应于样本均值+/-标准误差)在约 68% 的时间中包含真实均值。

总而言之,贝叶斯可信区间对真实参数值进行陈述,频率置信区间对零假设进行陈述。然而,在实践中,贝叶斯和频率论的估计通常非常相似(图 16.13 )。贝叶斯方法的一个概念优势,是它强调思考效果的大小,而频率论思维强调效果的二元视角,无论是否存在。

图 16.13:平均巧克力评级的频率论置信区间和贝叶斯可信区间的比较。我们看到两种方法产生相似但不完全相同的结果。特别是,贝叶斯估计显示出少量的收缩,这是最极端的参数估计在整体均值方向上的调整。 (注意瑞士的贝叶斯估计略微向左移动,秘鲁的贝叶斯估计相对于相应的频率估计稍微向右移动。)此处显示的频率估计和置信区间,与图 16.7 所示的 95% 置信的结果相同。

贝叶斯可信区间回答了这样一个问题:“我们期望真实参数值位于何处?”频率主义置信区间回答了一个问题:“我们对于真实参数值不是零的确定程度如何?”

贝叶斯估计的中心目标是获得后验分布。因此,贝叶斯通常将整个分布可视化,而不是将其简化为可信区间。因此,在数据可视化方面,在第七、八、九章中讨论的可视化分布的所有方法都是适用的。具体而言,直方图,密度图,箱线图,提琴图和脊线图都常用于可视化贝叶斯后验分布。由于这些方法已经在他们的具体章节中进行了详细讨论,我将在这里仅展示一个例子,使用脊线图来显示平均巧克力评级的贝叶斯后验分布(图 16.14)。在这个特定情况下,我在曲线下添加了阴影来指示后验概率的定义区域。作为着色的替代方法,我也可以绘制分位数点图,或者我可以在每个分布下添加分级误差条。带有误差条的脊线图称为半眼图,带有误差条的提琴图称为眼图(章节 5.6)。

图 16.14:平均巧克力棒评级的贝叶斯后验分布,显示为脊线图。红点代表每个后验分布的中位数。由于难以通过眼睛将连续分布转换为特定置信区域,因此我在每条曲线下添加了阴影来指示每个后验分布的中心 80%,95% 和 99%。

16.3 可视化曲线拟合的不确定性

在第 14 章中,我们讨论了如何通过将直线或曲线拟合到数据,来显示数据集中的趋势。这些趋势估计也存在不确定性,并且习惯上在具有置信区间的趋势线中显示不确定性(图 16.15)。置信区间为我们提供了一系列与数据兼容的不同拟合线。当学生第一次遇到一个置信区间时,他们常常会惊讶地发现,即使是完美的直线拟合也会产生一个弯曲的置信带。弯曲的原因是直线拟合可以在两个不同的方向上移动:它可以上下移动(即,具有不同的截距),并且它可以旋转(即,具有不同的斜率)。我们可以通过绘制从拟合参数的后验分布随机生成的一组替代拟合线,来可视地显示置信带是如何产生的。这在图 16.16 中完成,它显示了 15 个随机选择的替代拟合。我们看到,即使每条线都是完全笔直的,每条线的不同斜率和截距的组合也会产生一个整体形状,看起来就像置信区间一样。

图 16.15:雄性蓝鸟的头长与体重的关系,如图 14.7 所示。蓝色直线代表数据的最佳线性拟合,线周围的灰色条带显示线性拟合的不确定性。灰色条带代表 95% 的置信水平。数据来源:欧柏林学院的 Keith Tarvin

图 16.16:雄性蓝鸟的头长与体重的关系。与图 16.15 相比,蓝色直线现在代表从后验分布中随机抽取的等可能的替代拟合。数据来源:欧柏林学院的 Keith Tarvin

为了绘制置信带,我们需要指定置信水平,正如我们在误差条和后验概率中看到的那样,突出不同的置信水平会很有用。这导致我们进入分级置信区间,一次显示几个置信水平(图 16.17 )。分级置信带增强了读者的不确定感,并迫使读者面对数据可能支持不同替代趋势线的可能性。

图 16.17:雄性蓝鸟的头长与体重的关系。与误差条的情况一样,我们可以绘制分级置信带,来突出估计中的不确定性。数据来源:欧柏林学院的 Keith Tarvin

我们还可以绘制非线性曲线拟合的置信区间。这样的置信区间看起来不错,但很难解释(图 16.18 )。如果我们看一下图 16.18a,我们可能会认为,通过向上和向下移动蓝线并可能稍微变形来产生置信带。然而,如图 16.18b 所揭示的,置信带表示一系列曲线,它们比部分(a)所示的整体最佳拟合摆动更大。这是非线性曲线拟合的一般原理。不确定性不仅对应于曲线的上下运动,还对应于增加的摆动。

图 16.18:32 辆汽车(1973-74 型号)的燃油效率与排量的关系。每个点代表一辆汽车,通过拟合 5 节的立方回归样条获得平滑线。 (a)最佳拟合样条和置信带。 (b)从后验分布中抽取的等可能的替代拟合。数据来源:Motor Trend,1974。

16.4 假设结果图

所有不确定性的静态可视化都受到以下问题的困扰:读者可能将不确定性可视化的某些方面,解释为数据的确定性特征(确定性构造误差)。我们可以通过动画来可视化不确定性,通过循环通过许多不同但等可能的绘图来避免这个问题。这种可视化被称为假设结果图(Hullman,Resnick 和 Adar 2015)或 HOP。虽然在打印介质中不可能有 HOP,但它们在在线设置中非常有效,其中动画可视化可以以 GIF 或 MP4 视频形式提供。 HOP 在口头陈述的背景下也可以很好地运作。

为了说明 HOP 的概念,让我们再回到巧克力棒评级。当您站在杂货店考虑购买一些巧克力时,您可能不关心某些巧克力棒组的平均风味评级,和相关的不确定性。相反,你可能想知道一个更简单的问题的答案,例如:如果我随机拿起一个加拿大和美国制造的巧克力棒,我应该期望哪个更好?为了得到这个问题的答案,我们可以从数据集中随机选择加拿大和美国的巧克力棒,比较他们的评级,记录结果,然后多次重复这个过程。如果我们这样做,我们会发现在大约 53% 的情况下,加拿大巧克力棒将排名更高,47% 的情况下美国巧克力棒排名更高或两个并列。我们可以通过在这几个随机采样中循环,在视觉上显示这个过程,并显示每次抽取的两个巧克力棒的相对评级(图 16.19/16.20)。

图 16.19 :(用于印刷版)加拿大和美国巧克力棒评级的假设结果图示意图。每个垂直的绿条表示一个巧克力棒的评级,每个面板显示两个随机选择的巧克力棒的比较,每个巧克力棒来自加拿大制造商和美国制造商。在实际的假设结果图中,界面将在不同的绘图面板之间循环,而不是并排显示它们。

图 16.20 :(对于在线版本)加拿大和美国的巧克力棒评级的假设结果图。每个垂直的绿条表示一个巧克力棒的评级。动画在两个随机选择的巧克力棒的不同情况之间循环,每个来自加拿大制造商和美国制造商。

作为第二个例子,考虑图 16.18b 中等可能的趋势线中的形状变化。由于所有趋势线都是相互重叠绘制的,因此我们主要感知趋势线覆盖的整体区域,这类似于置信区间。理解各个趋势线很困难。通过将此图转换为 HOP,我们可以一次突出显示一个趋势线(图 16.21/16.22)。

图 16.21 :(用于印刷版)燃料效率与排量的假设结果图示意图。每个点代表一辆汽车,通过拟合 5 节的立方回归样条获得平滑线。每个面板中的每条线代表一个替代的拟合结果,从拟合参数的后验分布中抽取。在实际的假设结果图中,界面将在不同的绘图面板之间循环,而不是并排显示它们。

图 16.22 :(对于在线版本)燃料效率与排量的假设结果图。每个点代表一辆汽车,通过拟合 5 节的立方回归样条获得平滑线。界面在不同替代拟合结果之间循环,它们从拟合参数的后验分布抽取。

在制作 HOP 时,您可能想知道在不同结果之间进行硬切换(如在幻灯片投影仪中),或者从一个结果平滑过渡到下一个结果(例如,将一个结果的趋势线慢慢变形直到它看起来像另一个结果的趋势线)是否更好。虽然这在某种程度上是一个需要继续研究的开放性问题,但一些证据表明,平滑过渡使得更难判断所代表的概率(Kale 等 2018 )。如果您考虑在结果之间制作动画,您可能希望至少使这些动画很快,或者选择一种动画样式,其中结果淡入淡出而不是从一个变为另一个。

在制作 HOP 时,我们需要注意一个关键方面:我们需要确保我们所展示的结果能够代表可能结果的真实分布。否则,我们的 HOP 可能会产生误导。例如,回到巧克力评级的情况下,如果我随机选择十对结果巧克力棒,其中美国巧克力棒在七种情况下被评为高于加拿大巧克力棒,那么 HOP 会产生错误印象:美国巧克力棒的往往比加拿大巧克力棒评级更高。我们可以通过选择大量结果来防止这个问题,或者通过某种形式验证所展示的结果是否合适,因此采样偏差是不太可能的。在制作图 16.19/16.20 时,我确认加拿大巧克力棒的获胜次数接近 53% 的真实百分比。

参考

Kay, M., T. Kola, J. Hullman, and S. Munson. 2016. “When (Ish) Is My Bus? User-centered Visualizations of Uncertainty in Everyday, Mobile Predictive Systems.” CHI Conference on Human Factors in Computing Systems, 5092–5103. doi:10.1145/2858036.2858558.

Hullman, J., P. Resnick, and E. Adar. 2015. “Hypothetical Outcome Plots Outperform Error Bars and Violin Plots for Inferences About Reliability of Variable Ordering.” PLOS ONE 10: e0142444. doi:10.1371/journal.pone.0142444.

Kale, A., F. Nguyen, M. Kay, and J. Hullman. 2018. “Hypothetical Outcome Plots Help Untrained Observers Judge Trends in Ambiguous Data.” IEEE Transactions on Visualization and Computer Graphics. doi:10.1109/TVCG.2018.2864909.

17 比例墨水原理

原文: 17 The principle of proportional ink

校验:飞龙

自豪地采用谷歌翻译

在许多不同的可视化场景中,我们通过图形元素的区域来表示数据值。例如,在条形图中,我们绘制的条形图从 0 开始并以它们代表的数据值结束。在这种情况下,数据值不仅编码为条形的终点,而且编码为条形的高度或长度。如果我们绘制一个以非 0 值开始的条形图,则条形终点和条形长度将传达矛盾的信息。这些数字在内部不一致,因为它们使用相同图形元素显示的两个不同值。将此与我们使用点来可视化数据值的情况进行对比。在这种情况下,该值仅编码为点的位置,而不是点的大小或形状。

每当我们使用图形元素(如条形,矩形,任意形状的阴影区域)或任何其他具有明显可视区域的元素时,都会出现类似的问题,这些元素可能与所显示的数据值一致或不一致。在所有这些情况下,我们需要确保没有不一致。这个概念被 Bergstrom 和 West 称为比例墨水原理(Bergstrom 和 West 2016 ):

比例墨水原理:可视化中的阴影区域大小需要与它们所代表的数据值成比例。

(通常的做法是使用“墨水”一词来指代偏离背景颜色的可视化的任何部分。这包括线条,点,阴影区域和文本。然而,在本章中,我们主要讨论的是阴影区域。)违反这一原则的情况非常普遍,特别是在大众媒体和金融界。

17.1 沿线性轴可视化

我们首先考虑最常见的情景,即沿线性比例的数量可视化。图 17.1 显示夏威夷州的五个县的收入中位数。这是报纸文章中可能遇到的典型图像。快速浏览一下这个图形表明,夏威夷县非常贫穷,而檀香山县比其他县富裕得多。然而,图 17.1 相当具有误导性,因为所有条形都以 50,000 美元的收入中位数开始。因此,虽然每个条形的终点正确代表了每个县的实际收入中位数,但条形高度代表收入中位数超过 50,000 美元的程度,这是一个任意数字。并且人类感知是这样的:条形高度是我们在观察该图时所感知的关键数量,而不是条形终点相对于 y 轴的位置。

图 17.1:夏威夷州五个县的收入中位数。这个图形具有误导性,因为 y 轴刻度从 50,000 美元而不是 0 美元开始。结果,条形高度与所示数值不成比例,夏威夷县与其他四个县之间的收入差距看起来比实际大得多。数据来源:2015 年美国五年社区调查。

这些数据的适当可视化使得故事不那么令人激动(图 17.2 )。虽然各州之间的收入中位数存在差异,但它们远远没有图 17.1 所暗示的那么大。总体而言,不同县的收入中位数是差不多的。

图 17.2:夏威夷州五个县的收入中位数。这里, y 轴刻度从 0 美元开始,因此准确显示了五个县的收入中位数的相对大小。数据来源:2015 年美国五年社区调查。

线性刻度上的条形应始终从 0 开始。

在时间序列的可视化中经常出现类似的可视化问题,例如股票价格的可视化问题。图 17.3 表明 Facebook 股票价格在 2016 年 11 月 1 日左右大幅下跌。实际上,相对于股票总价格,价格下跌幅度较小(图 17.4 ])。即使没有曲线下方的阴影,图 17.3 中的 y 轴刻度也会有问题。但有了阴影,这个图形变得特​​别成问题。阴影强调从 x 轴的位置到所示的特定 y 值的距离,因此它产生视觉印象,即给定日期的阴影区域的高度代表那天的股票价格。相反,它只代表股票价格与基线的差异,图 17.3 中为 110 美元。

图 17.3:2016 年 10 月 22 日到 2017 年 1 月 21 日的 Facebook(FB)的股票价格。这个图形似乎意味着 Facebook 股票价格在 2016 年 11 月 1 日左右崩溃。但是,这是误导性的,因为 y 轴的起价为 110 美元而不是 0 美元。

图 17.4:2016 年 10 月 22 日至 2017 年 1 月 21 日的 Facebook(FB)的股票价格。通过在 0 美元到 150 美元的 y 轴上展示的股票价格,这个图形更准确地传递了 2016 年 11 月 1 日左右的 FB 价格下跌的幅度。

图 17.2 和图 17.4 的例子可能表明,条形和阴影区域不能用于表示随时间的微小变化,或条件之间的差异,因为我们总是需要画出整个条形或从 0 开始的区域。但事实并非如此。使用条形或阴影区域来显示条件之间的差异是完全有效的,只要我们明确说明我们显示的差异。例如,我们可以使用条形图来显示 2010 年至 2015 年夏威夷县收入中位数的变化(图 17.5 )。对于除卡拉沃以外的所有县,这一变化不到 5000 美元。 (卡拉沃是一个不同寻常的县,人口不到 100 人,少数人进出该县可能产生收入中位数的大幅波动。)对于夏威夷县,这种变化是负面的,即 2015 年的收入中位数低于 2010 年。我们通过绘制相反方向的条形来表示负值,即从 0 向下而不是向上延伸。

图 17.5:2010 年至 2015 年夏威夷县收入中位数的变化。数据来源:2010 年和 2015 年美国五年社区调查。

同样,我们可以将 Facebook 随时间变化的股票价格,绘制为与 2016 年 10 月 22 日的临时峰值的差异(图 17.6 )。通过着色表示与峰值的距离的区域,我们可以准确地表示价格下降的绝对值,而不会对价格下降相对于总股价的幅度,做出任何隐含的陈述。

图 17.6:Facebook(FB)股票价格相对于 2016 年 10 月 22 日价格的损失。2016 年 11 月 1 日至 2017 年 1 月 1 日期间,价格比 2016 年 10 月 22 日的峰值低了约 15 美元。但随后价格在 2017 年 1 月开始复苏。

17.2 沿对数轴的可视化

当我们沿线性刻度可视化数据时,条形,矩形或其他形状的区域自动与数据值成比例。如果我们使用对数刻度,则情况并非如此,因为数据值不是沿轴线性间隔的。因此,有人可能会争论说,例如,对数刻度上的条形图本质上存在缺陷。另一方面,每个条形的面积将与数据值的对数成比例,因此对数刻度上的条形图满足对数变换坐标中的比例墨水原理。在实践中,我认为这两个论点都不能解释对数比例条形图是否合适。相反,相关的问题是我们是否想要可视化数量或比率。

在第三章中,我已经解释了对数刻度是可视化比率的自然刻度,因为沿对数刻度的单位步长对应于乘以或除以常数因子。然而,在实践中,对数刻度通常并与专门用于可视化比率,而是因为显示的数字在很多数量级上变化。例如,考虑大洋洲国家的 2007 年国内生产总值(GDP),这些数字从不到 10 亿美元(USD)到超过 3000 亿美元不等(图 17.7)。以线性刻度可视化这些数字是行不通的,因为 GDP 最大的两个国家(新西兰和澳大利亚)将主导这一绘图。

图 17.7:2007 年大洋洲国家的国内生产总值。条形的长度不能准确反映所显示的数据值,因为条形起始于 3 亿美元的任意值。数据来源:Gapminder。

但是,对数刻度上使用条形的可视化(图 17.7)也不起作用。条形起始于 3 亿美元的任意值,并且至少该绘图受到图 17.1 的相同问题的影响,条形长度不代表数据值。然而,对数刻度的额外难度在于我们不能简单地让条形从 0 开始。在图 17.7 中,值 0 将位于左侧无限远。因此,我们可以通过把它们的原点推得更远,来使我们的条形任意长,参见例如图 17.8 。当我们尝试在对数刻度上可视化数量(这是 GDP 值)时,总会出现这个问题。

图 17.8:2007 年大洋洲国家的国内生产总值。条形的长度不能准确反映所示的数据值,因为条形起始于任意值 10^(-9) 十亿美元。数据来源:Gapminder。

对于图 17.7 的数据,我认为条形图是不合适的。相反,我们可以简单地沿着刻度,为每个国家的 GDP 在适当位置放置一个点,并完全避免条形长度问题(图 17.9 )。重要的是,通过将国家名称放在点的旁边而不是沿着 y 轴,我们避免产生幅度的视觉感知,由国家名称到点的距离所传达。

图 17.9:2007 年大洋洲国家的国内生产总值。数据来源:Gapminder。

但是,如果我们想要显示比率而不是数量,那么对数刻度上的条形是一个非常好的选择。实际上,在这种情况下,它们优于线性刻度上的条形。例如,让我们想象一下大洋洲国家的 GDP 值,相对于巴布亚新几内亚的 GDP。由此产生的绘图很好地突出了各国 GDP 之间的关键关系(图 17.10 )。我们可以看到,新西兰的 GDP 超过巴布亚新几内亚的八倍,澳大利亚的 GDP 超过 64 倍,而汤加和密克罗尼西亚联邦的 GDP 不到巴布亚新几内亚国内生产总值的十六分之一。法属波利尼西亚和新喀里多尼亚相近,但 GDP 略低于巴布亚新几内亚。

图 17.10:2007 年大洋洲国家的国内生产总值,相对于巴布亚新几内亚的国内生产总值。数据来源:Gapminder。

图 17.10 还突出显示对数刻度的自然中点为 1,表示大于 1 的数字的条形在一个方向上延伸,表示小于 1 的数字的条形在另一个方向上延伸条形。对数刻度上的条形表示比率,并且必须始终从 1 开始,线性刻度上的条形表示数量,并且必须始终从 0 开始。

在对数刻度上绘制条形时,它们表示比率,需要从 1 开始绘制,而不是 0。

17.3 直接区域的可视化

所有前述示例沿一个线性维度可视化数据,使得数据值编码为沿着 xy 轴的面积和位置。在这些情况下,我们可以将数据值的面积编码视为相对于位置编码的偶然和次要编码。然而,其他可视化方法主要或直接由面积表示数据值,而没有相应的位置映射。最常见的是饼图(图 17.11 )。尽管从技术上讲,数据值被映射到角度,这些角度由沿着圆轴的位置表示,但实际上我们通常不会判断饼图的角度。相反,我们关注的主要视觉特性,是每个楔形区域的大小。

图 17.11:罗德岛县的居民人数,以饼图形示。每个楔形的角度和面积都与各个县的居民数量成比例。数据来源:2010 年美国十年普查。

因为每个楔形的面积与其角度成比例,该角度与楔形所代表的数据值成比例,所以饼图满足比例墨水原理。但是,我们认为饼图中的面积与条形图中的相同面积不同。根本原因是人类感知主要判断距离而不是面积。因此,如果数据值完全被编码为距离,如条形长度的情况,比起数据值编码为两三个距离的组合,它们共同创建一个区域的情况,我们更准确地感知它。为了看到这种差异,比较图 17.11 和图 17.12 ,它使用条形显示相同的数据。普罗维登斯县和其他县之间居民人数的差异在图 17.12 中比在图 17.11 中更大。

图 17.12:罗德岛县的居民人数,以条形图形示。每个条形的长度与各自县的居民数量成比例。数据来源:2010 年美国十年普查。

人类感知更善于判断距离而不是判断区域的问题,也出现在树形图中(图 17.13 ),可以将其视为饼图的方形版本。同样,与图 17.12 相比,各县居民数量的差异在图 17.13 中显得不太明显。

图 17.13:罗德岛县的居民人数,以树形图显示。每个矩形的面积与相应县的居民数量成比例。数据来源:2010 年美国十年普查。

参考

Bergstrom, C. T., and J. West. 2016. “The Principle of Proportional Ink.” http://callingbullshit.org/tools/tools_proportional_ink.html.

18 处理重叠点

原文: 18 Handling overlapping points

校验:飞龙

自豪地采用谷歌翻译

当我们想要显示大型或非常大的数据集时,我们经常遇到这样的挑战:简单的 x - y 散点图不能工作得很好,因为许多点位于彼此的顶部并且部分或完全重叠。如果以低精度或四舍五入的方式记录数据值,即使在小数据集中也会出现类似的问题,这样多个观测值具有完全相同的数值。通常用于描述这种情况的技术术语是“过度绘图”,即,将许多点绘制在彼此之上。在这里,我将描述您在遇到此挑战时可以采取的几种策略。

18.1 局部透明和抖动

我们首先考虑的是仅具有中等数量的数据点但具有大量舍入的场景。我们的数据集包含 1999 年至 2008 年间发布的 234 种流行车型的城市燃油效率和发动机排量(图 18.1 )。在此数据集中,燃油效率以英里/加仑(mpg)为单位进行测量,并四舍五入到最接近的整数值。发动机排量以升为单位测量,并四舍五入到最接近的分升值。由于这种四舍五入,许多车型具有完全相同的值。例如,共有 21 辆汽车具有 2.0 升发动机排量,他们作为一组,只有四种不同的燃油效率值,19, 20, 21 或 22 英里/加仑。因此,在图 18.1 中,这 21 辆汽车仅由四个不同的点代表,因此 2.0 升发动机看起来比实际上更不受欢迎。此外,该数据集包含两个带 2.0 升发动机的四轮驱动车,以黑点表示。然而,这些黑点完全被黄点遮挡,因此看起来没有配备 2.0 升发动机的四轮驱动车。

图 18.1:1999 年至 2008 年间发布的流行车型的城市燃油效率与发动机排量。每个点代表一辆汽车。点的颜色编码传动系统:前轮驱动(FWD),后轮驱动(RWD)或四轮驱动(4WD)。该图标记为“不好”,因为许多点都是在其他点上绘制的并且模糊了它们。

改善此问题的一种方法是使用部分透明度。如果我们使各个点部分透明,则过度绘制的点显示为较暗的点,因此点的阴影反映了图形位置处点的密度(图 18.2 )。

图 18.2:城市燃油效率与发动机排量。因为点已经部分透明,所以位于其他点之上的点现在可以通过其较暗的阴影来识别。

然而,使点部分透明并不总是足以解决过度绘图的问题。例如,尽管我们可以在图 18.2 中看到某些点的阴影比其他点更暗,但很难估计每个位置在彼此的顶部绘制了多少个点。此外,虽然阴影的差异清晰可见,但它们并不是不言自明的。第一次看到这个图形的读者可能会想知道为什么有些点比其他点更暗,并且不会意识到这些点实际上是多个点叠在一起。在这种情况下有用的一个简单技巧是对点施加少量抖动,即在 xy 或两者的方向上,随机移动少量点。对于抖动,很明显,较暗的区域来自彼此重叠的点(图 18.3 )。此外,现在,代表具有 2.0 升发动机的四轮驱动汽车的黑点第一次清晰可见。

图 18.3:城市燃油效率与发动机排量的关系。通过向每个点添加少量抖动,我们可以使得过度绘制的点更清晰可见,而不会显着扭曲绘图的消息。

抖动的一个缺点是它确实会改变数据,因此必须小心执行。如果我们抖动太多,我们最终会在不代表底层数据集的位置放置点。结果是误导性的数据可视化。参见图 18.4 作为示例。

图 18.4:城市燃油效率与发动机排量。通过向点添加过多抖动,我们创建了一个无法准确反映底层数据集的可视化。

18.2 2D 直方图

当单个点的数量变得非常大时,部分透明度(有或没有抖动)将不足以解决过度绘图问题。通常会发生的是,点密度高的区域将显示为深色的均匀斑点,而在点密度低的区域中,各个点几乎不可见(图 18.5 )。而改变个别点的透明度水平将改善这些问题中的一个,同时使另一个问题恶化;没有透明度设置可以同时解决这两个问题。

图 18.5:2013 年从纽瓦克机场(EWR)起飞的所有航班的起飞延误(分钟)与航班起飞时间的关系。每个点代表一次起飞。

图 18.5 显示超过 100,000 个单独航班的起飞延误,每个点代表一次航班起飞。尽管我们已经使各个点相当透明,但是它们中的大多数只是在 0 到 300 分钟的起飞延误之间形成黑带。这个带子模糊了大多数航班是否准时起飞或大幅延误(比如 50 分钟或更长时间)。同时,由于点的透明度,最延误的航班(延误 400 分钟或更长时间)几乎看不到。

在这种情况下,我们可以制作 2D 直方图,而不是绘制单个点。 2D 直方图在概念上类似于第七章中讨论的一维直方图,但现在我们将数据在二维中分桶。我们将整个 x - y 平面细分为小矩形,计算落入每个桶的观测值数量,然后按该计数来着色矩形。图 18.6 使用这种方法,显示了起飞延误数据的结果。该可视化清晰地突出了航班起飞数据的几个重要特征。首先,白天(早上 6 点到晚上 9 点)的绝大多数航班,实际上是在没有延误甚至提前(负延误)的​​情况下起飞的。然而,一定数量的航班有很大的延误。此外,一架飞机在当天的起飞得越晚,它的延误就越大。重要的是,起飞时间是实际的起飞时间,而不是预定的起飞时间。所以这个图形并不一定告诉我们计划提前起飞的飞机从未经历过延误。然而,它告诉我们的是,如果飞机提前起飞,它要么没有延误,要么在极少数情况下延误大约 900 分钟。

图 18.6:以分钟为单位的起飞延误与航班起飞时间的关系。每个彩色矩形代表当时起飞的起飞延误为指定值的所有航班。着色表示该矩形的航班数。

作为将数据合并为矩形的替代方法,我们也可以将其分成六边形。这种方法首先由 Carr 等人(1987)提出,具有以下优点:比等面积方形中的点,六边形中的点平均更接近其中心。因此,彩色六边形比彩色矩形更准确地表示数据。图 18.7 显示六边形分桶而非矩形分桶的航班起飞数据。

图 18.7:以分钟为单位的起飞延误与航班起飞时间的关系。每个彩色六边形代表当时起飞的起飞延误为指定值的所有航班。着色表示该六边形的航班数。

18.3 等值线

我们还可以估计绘图区域内的点密度,并用等值线指示不同点密度的区域,而不是将数据点分组为矩形或六边形。当点密度在 xy 维度上缓慢变化时,该技术很有效。

作为这种方法的一个例子,我们返回第 12 章节的蓝鸟数据集。图 12.1 显示了 123 只蓝鸟的头长和体重之间的关系,并且这些点之间存在一些重叠。我们可以通过使点更小和部分透明,来更清楚地突出点的分布,并将它们绘制在等值线之上(图 18.8 ),它描绘点密度相似的区域。我们可以通过对由等值线包围的区域进行着色,来进一步增强对点密度变化的感知,对于表示较高点密度的区域使用较暗的颜色(图 18.9 )。

图 18.8:123 个蓝鸟的头长与体重的关系,如图 12.1 所示。每个点对应一只鸟,线条表示点密度相似的区域。点密度朝着图的中心增加,体重接近 75g,头长在 55mm 和 57.5mm 之间。数据来源:欧柏林学院的 Keith Tarvin

图 18.9:123 个蓝鸟的头长与体重的关系。这个图与图 12.1 几乎相同,但现在等值线包围的区域用越来越深的灰色阴影着色。这种阴影产生了更强的视觉印象,即点密度朝着点云的中心增加。数据来源:欧柏林学院的 Keith Tarvin

在第 12 章中,我们还分别研究了雄鸟和雌鸟的头长和体重之间的关系(图 12.2 )。我们可以通过为雄鸟和雌鸟分别绘制彩色等值线来绘制等值线图(图 18.10 )。

图 18.10:123 个蓝鸟的头长与体重的关系。如图 12.2 ,我们还可以在绘制等值线时通过颜色指示鸟类的性别。该图突出显示了雄鸟和雌鸟的点的分布是如何不同的。特别是,雄鸟在绘图区域的一个区域中更密集,而雌鸟则更加分散。数据来源:欧柏林学院的 Keith Tarvin

绘制不同颜色的多组等值线,可能是一次显示多个点云分布的强大策略。但是,这种技术需要谨慎使用。它仅在具有不同颜色的组的数量较小(两到三个),并且组明确分离时才有效。否则,我们最终会得到一条毛球,它的不同颜色的线彼此交叉,并且根本不显示任何特定的图案。

为了说明这个潜在的问题,我将使用钻石数据集,其中包含 53,940 颗钻石的信息,包括它们的价格,重量(克拉)和切割。图 18.11 将此数据集显示为散点图。我们看到了过度绘图的明显问题。有许多不同颜色的点在彼此之上,除了钻石落在价格克拉谱上的整体形状之外,不可能辨别出任何东西。

图 18.11:53,940 枚单颗钻石的钻石价格与其克拉值的关系。每颗钻石的切割都用颜色表示。该图被标记为“不好”,因为大量的过度绘图使我们无法辨别不同钻石切割的任何规律。数据来源:Hadley Wickham,ggplot2

我们可以尝试为不同的切割质量绘制彩色等值线,如图 18.10 。但是,在钻石数据集中,我们有五种不同的颜色,这些组严重重叠。因此,等值线图(图 18.12 )并没有比原始散点图好很多(图 18.11 )。

图 18.12:钻石价格与克拉值的关系。如图 18.11 ,但现在个别点已被等值线所取代。得到的图仍然标记为“不好”,因为等值线全部位于彼此之上。无论是单个切割的点的分布还是整体的点的分布都不能被辨别出来。数据来源:Hadley Wickham,ggplot2

在独立的绘图面板中绘制每个切割质量的等值线,会有所帮助(图 18.13 )。在一个面板中绘制它们的目的,可能是为了实现组之间的视觉比较,但是图 18.12 非常嘈杂,无法进行比较。相反,在图 18.13 中,背景网格使我们能够通过关注等值线相对于网格线的确切位置,来对切割质量进行比较。 (通过在每个面板中绘制部分透明的单个点而不是等值线,可以实现类似的效果。)

图 18.13:钻石价格与克拉值的关系。在这里,我们从图 18.12 中获取了密度等值线,并为每个切割分别绘制它们。我们现在可以看到,更好的切割(非常好,优质,理想)往往比较差的切割(一般,良好)具有更低的克拉值,但是每克拉的价格更高。数据来源:Hadley Wickham,ggplot2

我们可以提出两个主要趋势。首先,更好的切割(非常好,优质,理想)往往比较差的切割(一般,良好)具有更低的克拉值。回想一下克拉是衡量钻石重量的指标(1 克拉 = 0.2 克)。更好的切割往往会产生较轻的钻石(平均而言),因为需要去除更多的材料来创造它们。其次,在相同的克拉值下,更好的切割倾向于更高的价格。要查看此模式,请查看 0.5 克拉的价格分布示例。对于更好的切割,分布向上移动,特别是对于具有理想切割的钻石而言,其分布比具有一般或良好切割的钻石高得多。

参考

Carr, D. B., R. J. Littlefield, W. L. Nicholson, and J. S. Littlefield. 1987. “Scatterplot Matrix Techniques for Large N.” J. Am. Stat. Assoc. 82: 424–36.

19 颜色使用的常见缺陷

原文: 19 Common pitfalls of color use

校验:飞龙

自豪地采用谷歌翻译

颜色可以是一种增强数据可视化的非常有效的工具。同时,糟糕的颜色选择会破坏其他优秀的可视化效果。颜色需要服务于其目的,必须清晰,并且不得分散注意力。

19.1 编码过多或无关的信息

一个常见的错误是,通过将太多不同项目编码在不同颜色中,尝试为颜色提供太大而无法处理的工作。例如,考虑图 19.1 。它显示了美国所有 50 个州和哥伦比亚特区的人口增长与人口规模。我试图通过为每个州提供独立的颜色来识别它们。但是,结果不是很有用。即使我们可以通过查看绘图和图例中的彩色点,来猜测哪个州是哪个,但尝试在两者之间来回匹配它们,需要花费很多精力。有太多不同的颜色,其中许多颜色彼此非常相似。尽管付出了很多努力,我们也可以准确地确定哪个州是哪个,这种可视化会破坏着色的目的。我们应该使用颜色来增强图形并使它们更容易阅读,而不是通过创建视觉谜题来模糊数据。

图 19.1:2000 年至 2010 年的人口增长与 2020 年的人口规模,美国所有 50 个州以及哥伦比亚的判决。每个州都标有不同的颜色。由于状态太多,因此很难将图例中的颜色与散点图中的点进行匹配。数据来源:美国人口普查局

根据经验,当有三到五个不同类别需要着色时,定性颜色刻度最有效。一旦我们达到八到十个不同类别或更多类别,将颜色与类别匹配的任务变得过于繁琐而无用,即使颜色保持足够不同而在原则上可区分。对于图 19.1 的数据集,最好仅使用颜色来表明每个州的地理区域,并通过直接标记识别各个州,即通过在数据点附近放置适当的文本标签(图 19.2 )。即使我们不能标记每个州,而不使图形过于拥挤​​,直接标记也是这个图形的正确选择。通常,对于诸如此类的图形,我们不需要标记每个数据点。标记代表性子集就足够了,例如一组州,我们特别希望在文本中标明它,文本和图形在一起。如果我们想确保读者完全可以访问它,我们总是可以选择将底层数据提供为表格。

图 19.2:2000 年至 2010 年的人口增长与 2000 年的人口规模。与图 19.1 相比,我现在按区域着色州并直接标记了一个州的子集。大部分州都没有标记,以防止这个图形过度拥挤。数据来源:美国人口普查局

当您需要区分超过大约八个分类项时,请使用直接标注而不是颜色。

第二个常见问题是为了着色而着色,而没有明确的颜色目的。例如,考虑图 19.3 ,它是图 4.2 的变体。然而,现在我没有按地理区域对条形图进行着色,而是给每个条形图赋予了自己的颜色,因此总体来说,条形会产生彩虹效果。这可能看起来像一个有趣的视觉效果,但它不会创建任何新的数据见解或使图形更容易阅读。

图 19.3:2000 年至 2010 年美国的人口增长。州的彩虹着色没有任何意义,令人分心。此外,颜色过度饱和。数据来源:美国人口普查局

除了滥用不同颜色外,图 19.3 还有第二个与颜色相关的问题:所选择的颜色过于饱和且强烈。这种颜色强度使图形难以看清。例如,如果没有将我们的眼睛从州名旁边的较大和强烈的着色区域移开,就很难阅读州名。类似地,难以将条形的端点与下面的网格线进行比较。

避免大面积过饱和的填充区域。它们使您的读者难以仔细查看您的图形。

19.2 使用非单调颜色刻度来编码数据值

在第四章中,我为设计可以表示数据值的连续颜色刻度,列出了两个关键条件:颜色需要清楚地指示哪些数据值大于或小于哪些其他数据值,以及颜色之间的差异需要可视化数据值之间的相应差异。不幸的是,一些现有的颜色刻度 - 包括非常受欢迎的颜色刻度 - 违反了这些条件中的一个或两个。最流行的这种刻度是彩虹刻度(图 19.4 )。它贯穿色谱中的所有可能颜色。这意味着刻度实际上是圆形的;开头和结尾的颜色几乎相同(深红色)。如果这两种颜色在图中彼此相邻,我们不会本能地感知到,它们表示最大间隔的数据值。此外,刻度是高度非单调的。它有颜色变化非常缓慢的区域,以及颜色变化很快的区域。如果我们看一下灰度上的颜色刻度,这种单调性的缺乏就变得特别明显(图 19.4 )。刻度从中等暗到亮到非常暗,再到中等暗,并且有亮度变化很小的较大延伸,然后是亮度变化很大的相对小的延伸。

图 19.4:彩虹颜色刻度是高度非单调的。通过将颜色转换为灰度值,可以清楚地看到这一点。从左到右,刻度从中等暗到亮到非常暗,然后回到中等暗。另外,亮度的变化非常不均匀。刻度的最亮部分(对应于黄色,浅绿色和青色)占据整个刻度的近三分之一,而最暗部分(对应于深蓝色)集中在刻度的狭窄区域。

在实际数据的可视化中,彩虹刻度倾向于模糊数据特征和/或突出数据的任意方面(图 19.5 )。另外,彩虹刻度中的颜色也过度饱和。在任何较长的时间内看图 19.5 可能会非常不舒服。

图 19.5:德克萨斯州县中的白人的百分比。彩虹颜色刻度不是可视化连续数据值的合适刻度,因为它倾向于强调数据的任意特征。在这里,它强调了大约 75% 的人口为白人的县。数据来源:2010 年美国十年普查

19.3 不为色觉缺陷而设计

每当我们为可视化选择颜色时,我们需要记住,很大一部分读者可能会有某种形式的色觉缺陷(即色觉缺陷)。这些读者可能无法区分大多数其他人看起来明显不同的颜色。然而,色觉受损的人并非无法看到任何颜色。相反,他们通常难以区分某些类型的颜色,例如红色和绿色(红绿色视觉缺陷)或蓝色和绿色(蓝黄色视觉缺陷)。这些缺陷的技术术语是红绿色变体的绿色弱视(deuteranomaly/deuteranopia)和红色弱视(protanomaly/protanopia)(人们难以分别感知绿色或红色)和蓝黄色变体的蓝色弱视(tritanomaly/tritanopia)(人们难以察觉蓝色) )。以“anomaly”(异常)结尾的术语是指对相应颜色的感知的一些损害,并且以“anopia”(弱视)结尾的术语是指完全没有对该颜色的感知。大约 8% 的男性和 0.5% 的女性患有某种色觉缺陷,而绿色弱视是最常见的形式,而蓝色弱视是相对罕见的。

正如第四章所讨论的,数据可视化中使用了三种基本类型的颜色刻度:连续刻度,发散刻度和定性刻度。在这三个中,顺序刻度通常不会对具有色觉缺陷(CVD)的人造成任何问题,因为正确设计的连续刻度应呈现从暗色到浅色的连续渐变。图 19.6 显示了图 4.3 在 deuteranomaly,protanomaly 和 tritanomaly 的模拟版本中的热力刻度。虽然这些 CVD 模拟刻度看起来都不像原始刻度,但它们都呈现出从暗到亮的清晰渐变,它们都可以很好地传达数据值的大小。

图 19.6:顺序颜色刻度的色觉缺陷(CVD)模拟,从深红色到浅黄色。从左到右,从上到下,我们看到原始的刻度,和在 deuteranomaly,protanomaly 和 tritanomaly 模拟下看到的刻度。即使特定颜色在三种类型的 CVD 下看起来不同,在每种情况下我们都可以看到从暗到亮的清晰渐变。因此,这种颜色刻度可以安全地用于 CVD。

对于不同的刻度,事情变得更加复杂,因为流行的颜色对比在 CVD 下变得难以区分。特别是,红色和绿色的颜色为具有正常色觉的人提供了最强烈的对比,但对于绿色弱视患者(患有 deuteranomaly 的人)或者红色弱视患者(患有 protanomaly 的人)几乎无法区分(图 19.7 )。同样地,对于它们来说,蓝绿色的对比是可见的,但是对于蓝色弱视患者(具有 tritanomaly 的人)来说却难以区分(图 19.8 )。

图 19.7:在红绿色 CVD(deuteranomaly 或 protanomaly)下,红绿对比变得难以区分。

图 19.8:在蓝黄色 CVD(tritanomaly)下,蓝绿色对比变得难以区分。

通过这些例子,似乎几乎不可能找到在所有形式的 CVD 下都安全的两种对比色。但是,情况并非如此可怕。通常可以对颜色稍作修改,使得它们具有所需的特性,同时对 CVD 也是安全的。例如,图 4.5 的 ColorBrewer PiYG(粉红色到黄绿色)刻度对于具有正常色觉的人来说看起来是红绿色,但对于有 CVD 的人来说仍然可以区分(图 19.9 ) 。

图 19.9:来自图 4.5 的 ColorBrewer PiYG(粉红色至黄绿色)刻度,对于具有常规色觉的人看起来像红绿对比,但适用于所有形式的色觉缺陷。它的工作原理是红色实际上是粉红色(红色和蓝色的混合),而绿色也包含黄色。两种颜色之间的蓝色成分的差异甚至可以通过绿色或红色弱视患者来获取,并且红色成分的差异可以由蓝色弱视患者获取。

对于定性刻度而言,事情是最复杂的,因为我们需要许多不同的颜色,并且它们都需要在所有形式的 CVD 下能够区分。我在本书中广泛使用的首选定性颜色刻度是专门为解决这一挑战而开发的(图 19.10 )。通过提供八种不同的颜色,调色板适用于几乎任何具有离散颜色的场景。正如本章开头所讨论的那样,你可能不应该在一个绘图中对八个以上不同的项目进行颜色编码。

图 19.10:用于所有色觉缺陷的定性调色板(Okabe 和 Ito 2018)。字母数字代码表示 RGB 空间中的颜色,编码为十六进制。在许多绘图库和图像处理程序中,您只需直接输入这些代码即可。如果您的软件不直接采用十六进制,您也可以使用表 19.1 中的值。

表 19.1:色觉缺陷友好的颜色刻度,由 Okabe 和 Ito(2008)开发

名称 十六进制代码 色调 C,M,Y,K(%) R,G,B(0-255) R,G,B(%)
橙色 #E69F00 41° 0,50,100,0 230,159,0 90,60,0
天蓝色 #56B4E9 202° 80,0,0,0 86,180,233 35,70,90
蓝绿色 #009E73 164° 97,0,75,0 0,158,115 0,60,50
黄色 #F0E442 56° 10,5,90,0 240,228,66 95,90,25
蓝色 #0072B2 202° 100,50,0,0 0,114,178 0,45,70
朱红色 #D55E00 27° 0,80,100,0 213,94,0 80,40,0
红紫色 #CC79A7 326° 10,70,0,0 204,121,167 80,60,70
黑色 #000000 - 0,0,0,100 0,0,0 0, 0, 0

虽然有几种很好的 CVD 安全的颜色刻度可供选择,但我们需要认识到它们不是魔法子弹。很有可能使用 CVD 安全的刻度,仍然会产生具有 CVD 的人无法破译的图形。一个关键参数是彩色图形元素的大小。当它们应用于大面积而不是小面积或细线时,颜色更容易区分(Stone,Albers Szafir 和 Setlur 2014)。并且这种效果在 CVD 下更加恶化(图 19.11 )。除了本章和第四章中讨论的各种颜色设计注意事项外,我建议您在 CVD 模拟下查看彩色图形,来了解它对于具有 CVD 的人的样子。有几种在线服务和桌面应用可供用户通过 CVD 模拟来显示任意图形。

图 19.11:彩色元素在小尺寸时难以区分。左上方的面板(标有“原始”)显示了四个矩形,四条粗线,四条细线和四组点,所有这些都以相同的四种颜色着色。视觉元素越小或越薄,我们可以看到颜色变得越难以区分。这个问题在 CVD 模拟中变得更加严重,其中即使对于较大图形元素,颜色也已经更难以区分。

为了确保您的图形适用于具有 CVD 的人,不要只依赖于特定的颜色刻度。相反,在 CVD 模拟器中测试你的图形。

参考

Okabe, M., and K. Ito. 2008. “Color Universal Design (CUD): How to Make Figures and Presentations That Are Friendly to Colorblind People.” http://jfly.iam.u-tokyo.ac.jp/color/.

Stone, M., D. Albers Szafir, and V. Setlur. 2014. “An Engineering Model for Color Difference as a Function of Size.” In 22nd Color and Imaging Conference. Society for Imaging Science and Technology.

20 冗余编码

原文: 20 Redundant coding

校验:飞龙

自豪地采用谷歌翻译

在第 19 章中,我们已经看到颜色不能总是像我们希望的那样有效地传达信息。如果我们想要识别许多不同的项目,那么通过颜色这样做可能不起作用。将绘图中的颜色与图例中的颜色相匹配将很困难(图 19.1 )。即使我们只需要区分两到三个不同的项目,如果彩色项目非常小(图 19.11 )颜色可能会失效,并且/或者对于颜色视觉缺陷的人,颜色看起来相似(图 19.7 和 19.8 )。所有这些场景中的一般解决方案是使用颜色来增强图形的视觉外观,而不依赖于颜色来传达关键信息。我将这个设计原理称为冗余编码,因为它提示我们,使用多个不同的美学维度对数据进行冗余编码。

20.1 设计带有冗余编码的图例

多组数据的散点图经常以这种方式设计,代表不同组的点仅在颜色上不同。例如,考虑图 20.1 ,它显示了三种不同的鸢尾花物种的萼片宽度与萼片长度的关系。 (萼片是开花植物中花的外叶。)代表不同物种的点的颜色不同,但除此之外所有点看起来完全相同。尽管这个图只包含三组不同的点,但即使对于具有正常色觉的人来说也难以阅读。出现这个问题的原因是两个物种,弗吉尼亚鸢尾和杂色鸢尾的数据点混合在一起,它们的两种颜色,绿色和蓝色,对于彼此并没有特别明显。

图 20.1:三个不同鸢尾花物种(山鸢尾,弗吉尼亚鸢尾和杂色鸢尾)的萼片宽度与萼片长度的关系。每个点代表一个植物样本的测量值。对所有点位置施加了少量抖动以防止过度绘图。该图被标记为“不好”,因为弗吉尼亚鸢尾的绿点和杂色鸢尾的蓝点难以彼此区分。

令人惊讶的是,对于具有红绿色视觉缺陷(deuteranomaly 或 protanomaly)的人而言,绿色和蓝色点看起来比具有正常色觉的人更明显(比较图 20.2 的最上面一行,和图 20.1 )。另一方面,对于蓝黄色缺陷(tritanomaly)的人来说,蓝色和绿色点看起来非常相似(图 20.2 ,左下)。如果我们打印出灰度图(即我们对图去饱和),我们就无法区分任何鸢尾花种类(图 20.2 ,右下图)。

图 20.2:图 20.1 的色觉缺陷模拟。

我们可以对图 20.1 进行两项简单的改进,来缓解这些问题。首先,我们可以交换用于山鸢尾和杂色鸢尾的颜色,这样蓝色不再直接在绿色旁边(图 20.3 )。其次,我们可以使用三种不同的符号形状,因此这些点看起来都不同。通过这两个变化,图形的原始版本(图 20.3 )和颜色视觉缺陷和灰度(图 20.4 )的版本变得清晰。

图 20.3:三个不同鸢尾花物种的萼片宽度与萼片长度的关系。与图 20.1 相比,我们交换了山鸢尾和杂色鸢尾的颜色,我们给每个鸢尾花物种提供了自己的点形状。

图 20.4:图 20.3 的色觉缺陷模拟。由于使用了不同的点形状,即使是完全去饱和的灰度版本也很清晰。

更改点的形状是散点图的简单策略,但它不一定适用于其他类型的图。在折线图中,我们可以更改线型(实线,虚线,点虚线等,另请参见图 2.1 ),但使用虚线或点虚线通常会产生次优结果。特别是,虚线或点虚线通常看起来不太好,除非它们完全笔直或仅轻微弯曲,并且在任何一种情况下它们都会产生视觉噪音。此外,从绘图到图例匹配不同类型的虚线或点划线图案,经常需要大量的精力。那么我们如何处理可视化,如图 20.5 ,它使用线条来显示四个不同主要科技公司的随时间变化的股票价格?

图 20.5:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。这个数字被标记为“不好”,因为需要相当大的精力,才能将图例中的公司名称与数据曲线相匹配。数据来源:雅虎财经

该图包含四条线,代表四家不同公司的股票价格。这些线条采用色觉缺陷友好的颜色刻度进行颜色编码。因此,将每条线与相应的公司相关联应该是相对直接的。但事实并非如此。这里的问题是数据线具有清晰的视觉顺序。代表 Facebook 的黄线显然是最高的线,代表 Apple 的黑线显然是最低的,其中 Alphabet 和 Microsoft 介于此之间。然而,图例中四家公司的顺序是 Alphabet,Apple,Facebook,Microsoft(字母顺序)。因此,数据线的感知顺序不同于图例中的公司顺序,并且将数据线与公司名称匹配需要花费大量精力。

这个问题通常出现在绘制自动生成图例的软件上。绘图软件没有观察者将感知的视觉顺序的概念。相反,该软件按其他顺序排序图例,最常见的是按字母顺序排列。我们可以通过手动重新排序图例中的条目来解决这个问题,使它们与数据中的先前排序相匹配(图 20.6 )。结果是一个图形,使图例更容易与数据匹配。

图 20.6:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。数据来源:雅虎财经

如果数据中有清晰的视觉顺序,请确保在图例中与其匹配。

将图例顺序与数据顺序匹配总是有帮助的,但在色觉缺陷模拟下,这些好处尤为明显(图 20.7 )。例如,它有助于图的蓝绿弱视版本,其中蓝色和绿色变得难以区分(图 20.7 ,左下)。它也有助于灰度版本(图 20.7 ,右下角)。虽然 Facebook 和 Alphabet 的两种颜色几乎具有相同的灰度值,但我们可以看到微软和苹果以较暗的颜色代表并占据最下面的两个位置。因此,我们正确地假设最高的线对应于 Facebook,而第二高的线对应于 Alphabet。

图 20.7:图 20.6 的色觉缺陷模拟。

20.2 设计没有图例的图形

尽管通过冗余编码数据可以提高图例的易读性,但是在多种美学中,图例总是给读者带来额外的精神负担。在阅读图例时,读者需要在可视化的一部分中获取信息,然后将其转移到不同的部分。如果我们完全消除这个图例,我们通常可以让读者更轻松。然而,消除图例并不意味着我们根本不提供一个图例,并在图标题中写出诸如“黄点代表杂色鸢尾”的句子。消除图例意味着我们以这样的方式设计图形,即使没有明确的图例,各种图形元素所代表的内容也是不言自明的。

我们可以采用的一般策略称为直接标记,我们将适当的文本标签或其他视觉元素放置在图的其余部分作为指导。我们之前在第 19 章(图 19.2 )中遇到了直接标记,作为绘制具有 50 多种不同颜色的图例的替代方法。为了将直接标记概念应用于股票价格图形,我们将每个公司的名称放在其各自数据线末尾的旁边(图 20.8 )。

图 20.8:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。数据来源:雅虎财经

只要有可能,设计您的图形,使他们不需要图例。

我们也可以从本章开始就将直接标记概念应用于鸢尾花数据,特别是图 20.3 。因为它是分成三个不同组的许多点的散点图,所以我们需要直接标记组而不是单个点。一种解决方案是绘制包围大部分点的椭圆,然后标记椭圆(图 20.9 )。

图 20.9:三个不同鸢尾花物种的萼片宽度与萼片长度的关系。我已从此图中删除了背景网格,因为否则图形变得太嘈杂了。

对于密度图,我们可以类似地直接标记曲线而不是提供颜色编码的图例(图 20.10 )。在图 20.9 和 20.10 中,我将文本标签着色为与数据相同的颜色。彩色标签可以大大增强直接标记的效果,但它们也可能变得很差。如果文本标签以太浅的颜色打印,则标签变得难以阅读。并且,由于文本由非常细的线组成,因此彩色文本通常看起来比相同颜色的相邻填充区域更亮。我通常通过使用每种颜色的两种不同色调来避开这些问题,对于填充区域使用浅色,对于线条,轮廓和文本使用深色。如果仔细检查图 20.9 或 20.10 ,您将看到每个数据点或阴影区域如何填充为浅色,并且轮廓以相同色调的深色绘制。同时,文本标签以相同的深色绘制。

图 20.10:三个不同鸢尾花物种萼片长度的密度估计。每个密度估计直接用相应的物种名称标记。

我们还可以使用密度图(例如图 20.10 作为图例的替代方案,通过将密度图放入散点图的边缘(图 20.11 )。这允许我们直接标记边缘密度图而不是中心散点图,因此得到的图形比具有直接标记椭圆的图 20.9 稍微杂乱一些。

图 20.11:三个不同鸢尾花物种的萼片宽度与萼片长度的关系,带有每个物种的每个变量的边缘密度估计。

最后,每当我们在多个美学中编码单个变量时,我们通常不需要多个单独的图例来表示不同的美学。相反,应该只有一个类似图例的视觉元素,一次传达所有映射。在我们将相同变量映射到沿主轴的位置和颜色的情况下,这意味着参考颜色条应该沿着并且被集成到同一轴中。图 20.12 显示的情况是,我们将温度映射到沿 x 轴的位置和颜色,我们因此将颜色图例整合到 x 轴中。

图 20.12:2016 年内布拉斯加州林肯市的气温。该图是图 9.9 的变体。现在通过沿 x 轴的位置和颜色显示温度,沿 x 轴的颜色条显示将温度转换为颜色的刻度。

21 多面板图形

原文: 21 Multi-panel figures

校验:飞龙

自豪地采用谷歌翻译

当数据集变得庞大且复杂时,它们通常包含的信息,比单个图形面板中合理显示的信息要多得多。要可视化此类数据集,创建多面板图形会很有帮助。这些是由多个图形面板组成的图形,其中每个图形面板显示数据的一些子集。这些图形有两种截然不同的类别:1)小型多图是由多个面板组成的图,它们以规则网格排列。每个面板显示数据的不同子集,但所有面板使用相同类型的可视化。 2)复合图包括以任意排列(可能是或可能不是基于网格)组成的单独的图形面板,并且显示完全不同的可视化,甚至可能不同的数据集。

在本书的许多地方,我们遇到过两种类型的多面板图形。通常,这些图形直观且易于理解。但是,在制作这些图形时,我们需要注意一些问题,例如适当的轴缩放,对齐以及单个面板之间的一致性。

21.1 小型多图(Small Multiple)

术语“小型多图”由 Tufte(1990)推广。贝尔实验室的 Cleveland,Becker 及其同事(WS Cleveland 1993;Becker,Cleveland 和 Shyu 1996)同时推广了另一个术语“格子图”。无论术语如何,关键思想是根据一个或多个数据维度将数据切片为部分,分别可视化每个数据切片,然后将各个可视化排列成网格。网格中的列,行或单个面板由定义数据切片的数据维度的值标记。最近,这种技术有时也称为“切面”,以在广泛使用的 ggplot2 绘图库中创建此类绘图的方法命名(例如,facet_grid(),参见 Wickham(2016))。

作为第一个例子,我们将这种技术应用于泰坦尼克号乘客的数据集。我们可以根据每位乘客所乘坐的舱位,以及乘客是否幸存来细分该数据集。在这六个数据片段中的每一个中,都有男性和女性乘客,我们可以使用条形图来显示他们的数字。结果是六个条形图,我们排列成两列(一个用于死亡乘客,一个用于幸存者)三行(每个舱位一个)(图 21.1 )。标记列和行,因此可以立即清楚六个图中的哪一个对应于生存状态和类别的哪个组合。

图 21.1:按性别,生存状态和他们乘坐的舱位(第 1,第 2 或第 3)划分的泰坦尼克号乘客。

这种可视化为泰坦尼克号乘客的命运提供了直观且高度可解释的可视化。我们清楚地看到,大多数男性死亡,大多数女性幸存。此外,几乎所有死亡的女性都乘坐三等舱。

小型多图是一次可视化大量数据的强大工具。图 21.1 使用六个独立的面板,但我们可以使用更多。图 21.2 显示了互联网电影数据库(IMDB)上电影的平均评级与电影收到的投票数之间的关系,分别针对 100 年时间内发布的电影。在这里,数据集仅按一个维度,年份进行切片,每年的面板从左上角到右下角按行排列。该可视化显示平均评级和投票数之间存在总体关系,具有更多投票的电影倾向于具有更高的评级。然而,这种趋势的强度随着年份而变化,对于 21 世纪初期发行的电影来说,没有任何关系,甚至是负面关系。

图 21.2:从 1906 年到 2005 年的电影的平均评级与投票数。点表示单个电影,线表示每部电影的平均评级与电影收到的投票数的对数的线性回归。在大多数年份中,具有较高票数的电影平均具有较高的平均评级。然而,这种趋势在 20 世纪末已经趋于衰弱,并且在 21 世纪初发布的电影中可以看到负面关系。数据来源:互联网电影数据库(IMDB,imdb.com

为了使这些大图易于理解,重要的是每个面板使用相同的轴范围和刻度。人类心理预计会出现这种情况。如果不是,那么读者很可能会错误地解释图中显示的内容。例如,考虑图 21.3,介绍了不同学位领域的学士学位比例随时间的变化情况。该图显示了 1971 年至 2015 年间的九个学位领域,平均占所有学位的 4% 以上。面板的 y 轴被缩放,使得每个学位领域的曲线覆盖整个 y 轴范围。因此,对图 21.3 的粗略检查表明,九个学位领域都同样受欢迎,并且在受欢迎程度上都经历了相似幅度的变化。

图 21.3:美国高等教育机构授予的学士学位趋势。显示的是所有学位领域,平均占所有学位的 4% 以上。该图标记为“不好”,因为所有面板使用不同的 y 轴范围。这种选择模糊了不同学位领域的相对大小,并且过度夸大了某些学位领域的变化。数据来源:国家教育统计中心

然而,将所有面板放置在相同的 y 轴上,显示出这种解释具有高度误导性(图 21.4 )。某些学位领域比其他领域更受欢迎,同样一些领域比其他领域增长或缩小更多。例如,教育学已经下降很多,而视觉和表演艺术几乎保持不变或者可能略有增加。

图 21.4:美国高等教育机构授予的学士学位趋势。显示的是所有学位领域,平均占所有学位的 4% 以上。数据来源:国家教育统计中心

我通常建议不要在小型多图的单个面板中使用不同的轴刻度。但是,有时,这个问题确实是无法避免的。如果遇到这种情况,那么我认为至少你需要在图标题中让读者注意这个问题。例如,您可以添加一个句子,例如:“请注意, y 轴的刻度在此图的不同面板之间有所不同”。

在小型多图中考虑单个面板的顺序也很重要。如果顺序遵循一些逻辑原则,则该图将更容易解释。在图 21.1 中,我从最舱位(一等)到最舱位(三行)排列了行。在图 21.2 中,我通过从左上角到右下角按照递增年份来排列面板。在图 21.4 中,我通过递减的学位平均受欢迎程度来排列面板,使得最受欢迎的学位位于最上面一行和/或左边,最不受欢迎的学位位于最下面一行和/或在右边。

始终按照有意义的逻辑顺序将面板排列在一个小型多图中。

21.2 复合图

并非每个具有多个面板的图形都符合小型多图的模式。有时我们只是想将几个独立的面板组合成一个复合图,传达一个总体点。在这种情况下,我们可以采用不同的绘图并按行,列或其他更复杂的方式排列它们,并将整个排列看作一个图形。例如,见图 21.5 ,它继续分析美国高等教育机构授予的学士学位的趋势。图 21.5 的面板(a)显示了从 1971 年到 2015 年授予的学位总数的增长,在此期间,授予的学位数大约翻了一番。 面板(b)显示了同一时期五个最受欢迎学位领域的所授予学位的百分比变化。我们可以看到社会科学,历史和教育从 1971 年到 2015 年经历了大幅下降,而商业和健康专业则出现了大幅增长。

请注意,在我的小型多图示例中,复合图形的各个面板按字母顺序标记。通常使用拉丁字母表中的大写或小写字母。需要标签来唯一地指定特定面板。例如,当我想谈谈图 21.5 的一部分,它显示所授予学位的百分比变化时,我可以引用该图的图(b)或简单地引用图 21.5b。如果没有标签,我将不得不笨拙地谈论图 21.5 的“右侧面板”或“左侧面板”,并且对于更复杂的面板布局而言,提及特定面板会更加笨拙。小型多图不需要标记,或者通常不会对小型多图进行标记,因为每个面板都由切面变量唯一指定,它作为图形标签而提供。

图 21.5:美国高等教育机构授予的学士学位的趋势。(a)从 1970 年到 2015 年,学位总数几乎翻了一番。 (b)在最受欢迎的学位领域中,社会科学,历史和教育经历了大幅下降,而商业和健康专业则有所增长。数据来源:国家教育统计中心

标记复合图形的不同面板时,请注意标签如何适合整体图形设计。我经常看到这样的图形,标签看起来就像是由另一个人放在上面。并不罕见的是,标签制作得过于庞大和突出,放置在一个尴尬的位置,或者以与图中其他部分不同的字体排版。 (参见图 21.6 的例子。)当你看一个复合图时,标签不应该是你看到的第一件事。事实上,他们根本不需要脱颖而出。我们通常知道哪个图形面板具有哪个标签,因为约定是从左上角的“a”开始,标签从左到右,从上到下连续。我认为这些标签等同于页码。您通常不会阅读页码,并且哪个页面具有哪个号码是毫无疑问的,但有时使用页码来引用书籍或文章中的特定位置会很有帮助。

图 21.6:标记为“不好”的图 21.5 的变体。标签太大而且很厚,它们的字体不对,而且它们位于一个尴尬的位置。此外,虽然用大写字母标记很好并且实际上很常见,但标签需要在文档中的所有图形中保持一致。在本书中,惯例是多面板图形使用较小的小写标签,因此这个图形与本书中的其他图形不一致。

我们还需要注意复合图形的各个面板如何组合在一起。可以制作一组图形面板,它们各自都很好,但是不能共同工作。特别是,我们需要采用一致的视觉语言。 “视觉语言”是指我们用来显示数据的颜色,符号,字体等。简而言之,保持语言的一致性意味着相同的事物在数字上看起来相同或至少基本相似。

让我们看一个违反这一原则的例子。图 21.7 是一个三面板图,可视化男性和女性运动员的生理和身体成分的数据集。面板(a)显示数据集中的男性和女性数量,面板(b)显示男性和女性的红细胞和白细胞计数,面板(c)显示男性和女性的体脂百分比,按照运动细分。每个面板都是可接受的图形。但是,三个面板组合起来不起作用,因为它们不共享共同的视觉语言。首先,面板(a)对男性和女性运动员使用相同的蓝色,面板(b)仅用于男性运动员,面板(c)用于女运动员。此外,面板(b)和(c)引入了额外的颜色,但这两个面板之间的颜色不同。最好是为男性和女性运动员使用相同的两种颜色,并将相同的着色方案应用于面板(a)。其次,在图(a)和(b)中,女性在左侧,男性在右侧,但在图(c)中,顺序是相反的。应切换面板(c)中的箱形图顺序,使其与面板(a)和(b)相匹配。

图 21.7:男性和女性运动员的生理和身体组成。(a)数据集包括 73 名女性和 85 名男性职业运动员。(b)与女性运动员相比,男性运动员往往有较高的红细胞计数(以每升 10^12 个为单位),但白细胞计数没有这种差异(WBC,以每升 10^9 为单位)。 (c)男性运动员的体脂百分比,往往低于在同一运动中参赛的女运动员。数据来源:Telford 和 Cunningham(1991)

图 21.8 解决了所有这些问题。在这个图中,女性运动员一直以橙色显示,并且男性运动员在左侧显示为蓝色。请注意,阅读此图比图 21.7 更容易。当我们使用一致的视觉语言时,确定不同面板中哪些视觉元素代表女性和哪些男性,并不需要花费太多精力。另一方面,图 21.7 可能非常令人困惑。特别是,一目了然,它可能会产生一种印象,即男性的体脂百分比往往高于女性。另请注意,我们在图 21.8 中只需要单个图例,但在图 21.7 中需要两个。由于视觉语言是一致的,因此相同的图例适用于面板(b)和(c)。

图 21.8:男性和女性运动员的生理和身体组成。该图显示的数据与图 21.7 完全相同,但现在使用的是一致的视觉语言。女性运动员的数据总是显示在男性运动员的相应数据的左侧,并且性别在图的所有元素中始终采用颜色编码。数据来源:Telford 和 Cunningham(1991)

最后,我们需要注意复合图中各个图形面板的对齐。各个面板的轴和其他图形元素应全部彼此对齐。使对齐正确可能非常棘手,特别是如果单独的面板可能由不同的人和/或在不同的程序中单独制作,然后在图像处理程序中粘贴在一起。为了引起你对这种对齐问题的注意,图 21.9 显示了图 21.8 的变体,现在所有的图形元素都略微不对齐。我已经在图 21.9 的所有面板上添加了轴线,来强调这些对齐问题。请注意,图中任何一个面板的轴线都没有与其他轴线对齐。

图 21.9:图 21.8 的变体,其中所有图形面板略微未对齐。不对齐是丑陋的,应该避免。

参考

Tufte, E. R. 1990. Envisioning Information. Cheshire, Connecticut: Graphics Press.

Cleveland, W. 1993. “Visualizing Data.” Summit, New Jersey: Hobart Press.

Becker, R. A., W. S. Cleveland, and M.-J. Shyu. 1996. “The Visual Design and Control of Trellis Display.” Journal of Computational and Graphical Statistics 5: 123–55.

Wickham, H. 2016. ggplot2: Elegant Graphics for Data Analysis. 2nd ed. New York: Springer.

Telford, R. D., and R. B. Cunningham. 1991. “Sex, Sport, and Body-Size Dependency of Hematology in Highly Trained Athletes.” Medicine and Science in Sports and Exercise 23: 788–94.

22 标题,说明和表格

原文: 22 Titles, captions, and tables

校验:飞龙

自豪地采用谷歌翻译

数据可视化不是一件仅仅因其美学上令人愉悦的特征而被关注的艺术品。相反,它的目的是传达信息并提出一个观点。为了在制作可视化时可靠地实现此目标,我们必须将数据放入上下文并提供附带的标题,说明和其他注解。在本章中,我将讨论如何正确为图形起标题和标注图形。我还将讨论如何以表格形式呈现数据。

22.1 图标题和说明

每个图形的一个关键组成是图标题。每个图形都需要标题。标题的工作是准确地向读者传达这个图形是关于什么,它提出了什么观点。但是,图标题可能不一定出现在您期望看到它的位置。考虑图 22.1 。它的标题是“Corruption and human development: The most developed countries experience the least corruption”(腐败和人类发展:最发达的国家经历了最少的腐败)。然而,这个标题并未在图上方显示。相反,标题作为说明栏的第一部分提供,位于图形显示下方。这是我在本书中使用的风格。我一直展示没有集成标题和单独说明的图形。(一个例外是五章节中的程序化绘图示例,它们有标题而没有说明。)

图 22.1:腐败和人类发展:最发达国家经历了最少的腐败。这个图形的灵感来自经济学人在线(2011)。数据来源:Transparency International,和联合国人类发展报告

或者,我可以将图标题以及说明的其他元素(例如数据源声明)合并到主显示中(图 22.2 )。在直接比较中,您可能会发现图 22.2 比图 22.1 更具吸引力,您可能想知道为什么我在本书中选择后者的风格。我这样做是因为这两种风格具有不同的应用领域,具有集成标题的图形不适合传统的书籍布局。基本原则是一个图形只能有一个标题。标题被集成到实际的图形显示中,或者作为图形下方的说明的第一个元素提供。并且,如果出版物的布局是,每个图形在显示项目下面都有一个常规说明栏,则标题必须在该文本块中提供。出于这个原因,在传统书籍或文章出版的背景下,我们通常不会将标题整合到图形中。但是,如果它们旨在用作独立信息图形,或者在社交媒体或网页上发布而不附带说明文本,具有集成标题,副标题和数据源声明的图形是合适的。

图 22.2:图 22.1 的信息图版本。标题,副标题和数据源声明已合并到图中。这个图形可以原样张贴在网上,也可以在没有单独的说明栏的情况下使用。

如果您的文档布局在每个图形下方使用说明栏,则将图标题作为每个说明栏的第一个元素放置,而不是在图形的顶部。

我在图标题中看到的最常见的错误之一,是遗漏了一个正确的图像标题,作为说明的第一个元素。回顾图 22.1 的标题。它以“腐败和人类发展”开头。并没有以“这个图显示了腐败与人类发展的关系”开头。标题的第一部分始终是标题,而不是该图内容的描述。标题不一定是完整的句子,尽管做出明确断言的短句可以作为标题。例如,对于图 22.1 ,诸如“最发达国家是最不腐败的”这样的标题就可以正常工作。

22.2 轴和图例头衔

就像每个绘图都需要一个标题,轴和图例也需要标题。 (轴标题通常通俗地称为轴标签。)轴标签和图例标题说明了显示的数据值,以及它们如何映射到绘图美学。

为了展示所有轴和图例都经过适当标注和配有标题的图形示例,我在第 12 章中详细讨论了蓝色杰伊鸟数据集,并将其显示为气泡图(图 22.3 )。在该图中,轴标题清楚地表明 x 轴显示以克为单位的体重,y 轴显示以毫米为单位的头部长度。同样,图例标题显示,点的着色表示鸟类的性别,点的大小表示鸟类的头骨大小,以毫米为单位。我强调,对于所有数值变量(体重,头长和头骨大小),相关标题不仅说明所显示的变量,还说明变量的测量单位。这是一种很好的做法,应该尽可能地实现。类别变量(例如性别)不需要单位。

图 22.3:123 只蓝鸟的头长与体重的关系。鸟的性别用颜色表示,鸟的头骨大小用符号大小表示。头部长度测量值包括喙部的长度,而头骨大小测量值则不包括。数据来源:欧柏林学院的 Keith Tarvin

但是,有些情况下,可以省略轴或图例标题,即标签完全自解释时。例如,显示标记为“雌性”和“雄性”的两个不同颜色的点的图例,清楚地表明颜色编码性别。标题“性别”不需要澄清这一事实,事实上在本书中,我经常省略表示性别的图例的图例标题(参见例如图 6.10 , 12.2 ,或 21.1)。同样,国家或地区名称通常不需要标题来表明它们是什么(图 6.11 ),电影标题(图 6.1 )或年份(图 22.4 )也不需要。

图 22.4:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。这个图形是第 20 章 20.6 的略微修改版本。这里,表示时间的 x 轴没有标题。从上下文可以清楚地看出,2013 年,2014 年等数字是指年份。

但是,在省略轴或图例标题时我们必须要小心,因为很容易误判上下文中的内容和不明显的内容。我经常看到大众媒体中的图形,以一种让我感到不舒服的程度省略轴标题。例如,一些出版物可能会产生一个图形,例如图 22.5 ,假设轴的含义在图形标题和副标题中清晰可见(这里:“四个主要科技公司的随时间变化的股票价格”和“2012 年 6 月,每家公司的股票价格已经标准化为 100”)。我不同意上下文明确定义轴的观点。因为标题通常不包括诸如“x / y 轴显示”之类的单词,所以总是需要一定量的猜测来解释该图。根据我自己的经验,轴没有正确标记的图形往往会让我感到不安 - 即使我 95% 确定我明白所展示的内容,我也不会 100% 肯定。作为一般原则,我认为让读者猜出你的意思是一种不好的做法。你为什么要对读者产生一种不确定感?

图 22.5:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。图 22.4 的这个变体被标记为“不好”,因为 y 轴现在没有标题,或者 y 轴上显示的值代表什么,从上下文中不是立即显而易见的。

另一方面,我们可能过度标注。如果图例列出了四家知名公司的名称,则图例标题“公司”是多余的,并没有添加任何有用的东西(图 22.6 )。同样地,即使我们通常应该报告所有定量变量的单位,如果 x 轴显示近几年,将其标题设为“时间(年份 AD)”是笨拙的(图 22.6)。

图 22.6:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。图 22.4 的这个变体被标记为“丑陋”,因为它是过度标记的。特别地,为 x 轴上的值提供单位(“年份 AD”)是笨拙的。

最后,在某些情况下,不仅可以省略轴标题而且可以省略整个轴。饼图通常没有明确的轴(例如,图 10.1),树形图也没有(图 11.4)。如果图的含义清楚,则可以显示没有一个或两个轴的马赛克图或条形图(图 11.3 和 6.10)。省略带有轴刻度和刻度标签的显式轴向读者发出信号,表明图的定性特征比特定数据值更重要。

22.3 表格

表格是可视化数据的重要工具。然而,由于它们显而易见的简单性,它们可能并不总是得到所需的关注。我在本书中展示了一些表,例如表 6.1 , 7.1 和 19.1 。花点时间找到这些表格,查看它们的格式,并将它们与您或同事最近制作的表格进行比较。很有可能,存在重要的差异。根据我的经验,如果没有适当的表格格式上的训练,很少有人会本能地做出正确的格式选择。在自行发布的文档中,格式较差的表格比设计不佳的图形更为普遍。此外,通常用于创建表格的大多数软件都提供了不推荐的默认值。例如,我的 Microsoft Word 版本提供了 105 种预定义的表格样式,其中至少 70-80 违反了我将在这里讨论的一些表格规则。因此,如果您随机选择 Microsoft Word 表格布局,则有 80% 的几率选择一个有问题的表格。如果你选择默认值,那么每次都会得到一张格式不佳的表格。

表格布局的一些关键规则如下:

  1. 不要使用垂直线。
  2. 不要在数据行之间使用水平线。 (水平线作为标题行和第一个数据行之间的分隔符,或者作为整个表的框架都可以。)
  3. 文本列应保持对齐。
  4. 数字列应右对齐,并且应始终使用相同数量的十进制数字。
  5. 包含单个字符的列居中。
  6. 标题字段与其数据对齐,即,文本列的标题将左对齐,数字列的标题将右对齐。

图 22.7 以四种不同的方式从第六章中重制表 6.1 ,其中两个(a,b)违反了其中一些规则,其中两个(c ,d)没有。

图 22.7:使用第六章 6.1 中的数据,格式不佳和格式适当的表格示例。 (a)该表违反了许多正确的表格格式惯例,包括使用垂直线,使用数据行之间的水平线和使用居中数据列。 (b)该表遇到表(a)的所有问题,此外,通过在非常暗和非常亮的行之间交替,它产生额外的视觉噪声。此外,表头在视觉上与表体强烈分离。 (c)这是一个格式适当的表格,带有最少的设计。 (d)颜色可以有效地用于将数据分组成行,但颜色差异应该是微小的。可以使用更强的颜色来设置表头。数据来源:Box Office Mojo(boxofficemojo.com),经许可使用

当作者绘制具有数据行间的水平线的表格时,目的通常是帮助眼睛跟随各个线。但是,除非表格非常宽且稀疏,否则通常不需要这种视觉辅助。我们也不会在一段常规文本中的行之间绘制水平线。水平(或垂直)线的成本是视觉混乱。比较图 22.7 的(a)和(c)部分。 (c)部分比(a)部分更容易阅读。如果我们觉得需要一个分隔表格的行的视觉辅助,那么行的较亮和较暗的交替阴影往往会工作得很好,而不会产生太多的混乱(图 22.7 d)。

最后,图形和表格之间有个关键区别,即说明相对于显示项目所在的位置。对于图形,习惯上将说明放在下面,而对于表格,通常将说明放在上面。说明的放置由读者处理图形和表格的方式指导。对于图形,读者倾向于首先查看图形显示,然后阅读上下文的说明,因此说明在图下方有意义。相比之下,表格往往像文本一样从上到下进行处理,在阅读说明之前读取表格内容通常没有用处。因此,说明位于表格上方。

参考

The Economist online. 2011. “Corrosive Corruption.” https://www.economist.com/graphic-detail/2011/12/02/corrosive-corruption.

23 平衡数据和上下文

原文: 23 Balance the data and the context

校验:飞龙

自豪地采用谷歌翻译

我们可以将任何可视化中的图形元素,大致细分为表示数据的元素和不表示数据的元素。前者是诸如散点图中的点,直方图或条形图中的条形,或热图中的阴影区域等元素。后者是诸如绘图的轴,轴刻度和标签,轴标题,图例和绘图注解等元素。这些元素通常为图的数据和/或视觉结构提供上下文。在设计绘图时,考虑用于表示数据和上下文的墨水量(第 17 章)会很有帮助。一个常见的建议是减少非数据墨水量,遵循这些建议往往可以减少混乱,并产生更优雅的可视化。同时,背景和视觉结构是重要的,过度缩减提供它们的绘图元素,可能产生难以阅读,令人混淆或根本不引人注目的图形。

23.1 提供适当数量的背景

Edward Tufte 在他的着作“定量信息的视觉显示”(Tufte 2001)中推广了一个想法,即区分数据和非数据墨水可能是有用的。 Tufte 引入了“数据-墨水比”的概念,他将其定义为“用于数据信息的非冗余显示的图形墨水比例。”然后他写道(强调我的):

在合理范围内最大化数据墨水比。

我强调了“在合理范围内”这一短语,因为它很重要并经常被遗忘。事实上,我认为 Tufte 自己在他的书的其余部分中忘记了它,在那里他提倡过于简约的设计,在我看来,这些设计既不优雅也不容易破译。如果我们将“最大化数据墨水比”这一短语,解释为“消除混乱并努力获得干净和优雅的设计”,那么我认为这是合理的建议。但是,如果我们将其解释为“尽你所能去除非数据墨水”那么它将导致糟糕的设计选择。如果我们在任何一个方向走得太远,我们最终会得到丑陋的图形。然而,远离极端情况,有各种各样的设计都是可以接受的,并且可能适用于不同的环境。

为了探索极端情况,让我们考虑一个明显有太多非数据墨水的图形(图 23.1 )。绘图面板中的彩色点(包含数据点的方框中心区域)是数据墨水。其他一切都是非数据墨水。非数据墨水包括围绕整个图形的方框,围绕绘图面板的方框以及围绕图例的方框。这些方框都不是必需的。我们还看到一个突出且密集的背景网格,将注意力从实际数据点上移开。通过移除方框和次要网格线,并以浅灰色绘制主要网格线,我们得到图 23.2 。在该版本的图中,实际数据点更加清晰,并且它们被认为是该图中最重要的成分。

图 23.1:澳大利亚职业男性运动员的体脂百分比与身高的关系。每个点代表一名运动员。这个图形为非数据提供了太多的墨水。整个图形周围,绘图面板周围和图例周围都有不必要的方框。坐标网格非常突出,其存在将注意力从数据点移开。数据来源:Telford and Cunningham(1991)

图 23.2:澳大利亚职业男性运动员的体脂百分比与身高的关系。该图是图 23.1 的清理版本。已删除不必要的方框,删除了较小的网格线,并且以浅灰色绘制了主要网格线,来相对于数据点后移。数据来源:Telford and Cunningham(1991)

在另一个极端,我们可能会得到一个图形,如图 23.3 ,这是图 23.2 的极简版。在这个图中,轴刻度标签和标题已经变得如此微小,以至于很难看到。如果我们只是看一下这个图形,我们就不会立即看到实际显示的数据。我们只看到漂浮在空间中的点。此外,图例注解非常微小,以至于图例中的点可能会被误认为是数据点。这种效果被放大,因为在绘图区域和图例之间没有明显的视觉分离。注意图 23.2 中的背景网格如何锚定空间中的点,并从图例区域中突出数据区域。这些效果都已在图 23.3 中丢失。

图 23.3:澳大利亚职业男性运动员的体脂百分比与身高的关系。在这个例子中,删除非数据墨水的概念已经走得太远了。轴刻度标签和标题太模糊,几乎看不到。数据点似乎漂浮在空间中。图例中的点相对于数据点不够突出,不经意的观察者可能会认为它们是数据的一部分。数据来源:Telford and Cunningham(1991)

在图 23.2 中,我使用的是开放的背景网格,并且在绘图面板周围没有轴线或方框。我喜欢这种设计,因为它向读者传达,一系列可能的数据值超出轴限制。例如,尽管图 23.2 显示没有高于 210 厘米的运动员,但这样的运动员可能存在。然而,一些作者更倾向于通过在其周围画一个框,来描绘绘图面板的范围(图 23.4 )。这两种选择都是合理的,而且更可取的主要是个人意见问题。方框版本的一个优点是它清晰地将图例与绘图面板分开。

图 23.4:澳大利亚职业男性运动员的体脂百分比与身高的关系。此图在图 23.2 的绘图面板周围添加了一个方框,此方框有助于将图例与数据分开。数据来源:Telford and Cunningham(1991)

具有太少的非数据墨水的图形,通常受到图形元素看起来漂浮在空间中的影响,没有对任何东西的明确的连接或引用。在小型多图中,这个问题往往特别严重。图 23.5 显示了一个比较六个不同条形图的小型多图,但它看起来更像是一个现代艺术而非有用的数据可视化。条形没有锚定到清晰的基线,并且没有清楚地描绘单个绘图面板。我们可以通过在每个面板添加浅灰色背景和细水平网格线来解决这些问题(图 23.6 )。

图 23.5:按性别和舱位划分的泰坦尼克号乘客的生存情况。这个小型多图过于简约。各个图案没有方框,因此很难看出图中的哪个部分属于哪个面板。此外,单个条形不锚定到清晰的基线,它们似乎是漂浮的。

图 23.6:按性别和舱位划分的泰坦尼克号乘客的生存情况。这是图 23.5 的改进版本。每个面板的灰色背景清楚地描绘了构成该绘图的六个分组(在第一,第二或第三等舱中幸存或死亡)。背景中的水平细线在面板之间提供了条形高度的参考,和条形高度的比较设施。

23.2 背景网格

绘图背景中的网格线可以帮助读者识别特定数据值,并将绘图的一部分中的值与另一部分中的值进行比较。同时,网格线可能增加视觉噪声,特别是当它们突出或密集间隔时。理性的人可能在是否使用网格上产生分歧,如果是这样,如何格式化它,以及使它的间隔多么密集。在本书中,我使用了各种不同的网格样式,来强调不一定存在最佳选择。

R 软件 ggplot2 推广了一种风格,在灰色背景上使用相当突出的白线背景网格。图 23.7 显示了这种风格的一个例子。该图显示了 2012 至 2017 的五年窗口期间,四家主要科技公司的股价变化。对 ggplot2 作者 Hadley Wickham 感到抱歉,我非常尊重他,我并不觉得白加灰背景网格特别有吸引力。在我看来,灰色背景可能减损实际数据,并且具有主线和次线的网格可能太密集。我也发现图例中的灰色方块令人困惑。

图 23.7:四家主要科技公司的随时间变化的股票价格。 2012 年 6 月,每家公司的股票价格已经标准化为 100。这个图形模仿了 ggplot2 的默认外观,灰色背景上有白色的主要和次要网格线。在这个特定的例子中,我认为网格线压倒了数据线,结果是一个不均衡的图形,并没有充分强调数据。数据来源:雅虎财经

赞成灰色背景的论据包括它(i)帮助将绘图视为单个视觉实体,以及(ii)防止绘图在周围的黑暗文本中显示为白色框(Wickham 2016)。我完全同意第一点,这就是我在图 23.6 中使用灰色背景的原因。对于第二点,我要提醒一下,文本的感知暗度将取决于字体大小,字体和行间距,并且图形的感知暗度将取决于所用墨水的绝对量和颜色,包括所有数据墨水。以密集的 10 号 Times New Roman 排版的科学纸张,看起来比行间距为 1.5,以 14 号 Palatino 排版的咖啡桌书本要深一些。同样,五个黄点的散点图看起来要比 10,000 个黑点的散点图浅得多。如果要使用灰色图形背景,请考虑图形前景的颜色强度,以及图形周围文本的预期布局和排版,并相应地调整背景灰色的选择。否则,可能会发生这样的情况:您的图形最终会在周围较浅的文本中突出显示为深色盒子。此外,请记住,用于绘制数据的颜色需要配合灰色背景。我们倾向于在不同背景下不同地感知颜色,并且灰色背景需要比白色背景需要更暗且更饱和的前景色。

我们可以在相反的方向上一直移动,并移除背景和网格线(图 23.8 )。在这种情况下,我们需要可见的轴线来绘制图形,并将其保持为单个视觉单元。对于这个特殊的图形,我认为这个选择是一个更糟糕的选择,我把它标记为“不好”。在没有任何背景网格的情况下,曲线似乎在空间中漂浮,并且很难将右侧的最终值匹配左侧的轴标签。

图 23.8:四家主要科技公司的随时间变化的股票价格。在图 23.7 的该变体中,数据线没有充分锚定。这使得难以确定在所覆盖时间间隔的末尾,它们偏离指数值 100 的程度。数据来源:雅虎财经

在最小程度上,我们需要添加一个水平参考线。由于图 23.8 的股票价格在 2012 年 6 月指数为 100,因此在 y = 100 处用水平细线标记该值有很大帮助(图 23.9 )。或者,我们可以使用水平线的最小“网格”。对于我们主要关注 y 值变化的图,不需要垂直网格线。而且,仅位于主轴上的网格线通常就足够了。并且,轴线可以省略或制作得非常细,因为水平线清楚地标出了图的范围(图 23.10 )。

图 23.9:四家主要科技公司的随时间变化的股票价格。向图 23.8 在索引值 100 处添加水平细线,有助于在绘图跨越的整个时间段内提供重要参考。数据来源:雅虎财经

图 23.10:四家主要科技公司的随时间变化的股票价格。在所有主要 y 轴刻度处添加水平细线,提供了比图 23.9 的一条水平线更好的参考点集。这种设计还消除了对突出的 xy 轴线的需求,因为均匀间隔的水平线为绘图面板创建了可视方框。数据来源:雅虎财经

对于这样的最小网格,我们通常将线条垂直于兴趣量变化的方向。因此,如果不是随着时间的推移绘制股票价格,而是绘制五年的增长作为水平条形,那么我们将要使用垂直线代替(图 23.11 )。

图 23。11:四家主要科技公司 2012 年 6 月至 2017 年 6 月的股价上涨百分比。由于条形水平延伸,因此垂直网格线是合适的。数据来源:雅虎财经

垂直于关键的兴趣变量延伸的网格线往往是最有用的。

对于条形图,如图 23.11 , Tufte(2001)建议在条形图上方绘制白色网格线,而不是下方绘制黑色网格线(图 23.12 )。这些白色网格线具有将条形分成相等长度的不同区段的效果。我对这种风格有两个看法。一方面,对人类感知的研究表明,将条形断裂成不连续的区段有助于读者感知条长(Haroz,Kosara 和 Franconeri 2015)。另一方面,在我眼中,条形看起来像是分开,并没有形成清晰的视觉单元。事实上,我在图 6.10 中有目的地使用这种风格,来直观地分隔代表男性和女性乘客的堆叠条形。哪种效应占主导地位可取决于条宽,条形之间的距离和白色网格线的厚度的具体选择。因此,如果您打算使用此样式,我建议您更改这些参数,直到您有一个可以创建所需视觉效果的图形。

图 23.12:四家主要科技公司 2012 年 6 月至 2017 年 6 月的股价上涨百分比。条形顶部的白色网格线可以帮助读者感知条形的相对长度。与此同时,他们也可以产生条形分裂的感觉。数据来源:雅虎财经

我想指出图 23.12 的另一个缺点。我不得不将百分比值移到条形之外,因为标签不能放在几个条形的最后一段。然而,这种选择不适当地在视觉上拉长了条形,应尽可能避免。

沿着两个轴方向的背景网格,最适合于没有感兴趣的主轴的散点图。图 23.2 在本章开头提供了一个例子。当图形具有完整的背景网格时,通常不需要轴线(图 23.2)。

23.3 配对数据

对于相关比较是直线 x = y 的图,例如在配对数据的散点图中,我更喜欢绘制对角线而不是网格。例如,考虑图 23.13 ,其将突变病毒中的基因表达水平与非突变(野生型)变体进行比较。通过绘制对角线,我们可以立即看到相对于野生型,突变体中哪些基因表达得更高或更低。当图形具有背景网格而没有对角线时,相同的观察更难以实现(图 23.14 )。因此,即使图 23.14 看起来令人愉悦,我也将其标记为不好。特别是基因 10A,其突变体的表达水平相对于野生型明显降低(图 23.13),在图 23.14 中看不出来。

图 23.13:突变噬菌体 T7 相对于野生型的基因表达水平。基因表达水平通过 mRNA 丰度测量,以百万分之一转录物(TPM)表示。每个点对应一个基因。在突变噬菌体 T7 中,基因 9 前面的启动子被删除,这导致基因 9 以及邻近基因 810A 的 mRNA 丰度降低。数据来源: Paff 等(2018)

图 23.14:突变噬菌体 T7 相对于野生型的基因表达水平。通过将该数据集绘制在背景网格而不是对角线上,我们模糊了突变体中哪些基因比野生型噬菌体更高或更低。数据来源: Paff 等(2018)

当然我们可以从图 23.13 中取对角线,并将其添加到图 23.14 的背景网格之上,来确保存在相关的视觉参考。然而,由此产生的图形变得非常嘈杂(图 23.15)。我不得不使对角线更暗,以便它在背景网格上突出,但现在数据点似乎几乎淡入背景。我们可以通过使数据点更大或更暗来改善这个问题,但所有人都认为我宁愿选择图 23.13 。

图 23.15:突变噬菌体 T7 相对于野生型的基因表达水平。该图将图 23.14 的背景网格与图 23.13 的对角线相结合。在我看来,与图 23.13 相比,这个图形在视觉上太嘈杂了,我更喜欢图 23.13。数据来源: Paff 等(2018)

23.4 总结

使用非数据墨水使图形过载,和过度擦除非数据墨水,都会导致图形设计不佳。我们需要找到一种健康的媒介,其中数据点是图形的重点,同时提供所显示的数据的足够上下文,即点相对于彼此在哪里,以及它们的含义。

关于背景和背景网格,没有一种选择在所有情况下都是优选的。我建议对网格线要谨慎。仔细考虑哪些特定网格或引导线对您正在制作的图形最有用,然后仅显示这些。我更喜欢白色背景上的最小的浅色网格,因为白色是纸上的默认中性色,几乎支持任何前景色。但是,阴影背景有助于绘图显示为单个视觉实体,这在小型多图中可能特别有用。最后,我们必须考虑所有这些选择如何与视觉品牌和身份相关。许多杂志和网站都喜欢具有立即可识别的内部风格,阴影背景和背景网格的特定选择有助于创建独特的视觉身份。

参考

Tufte, E. 2001. The Visual Display of Quantitative Information. 2nd ed. Cheshire, Connecticut: Graphics Press.

Telford, R. D., and R. B. Cunningham. 1991. “Sex, Sport, and Body-Size Dependency of Hematology in Highly Trained Athletes.” Medicine and Science in Sports and Exercise 23: 788–94.

Wickham, H. 2016. ggplot2: Elegant Graphics for Data Analysis. 2nd ed. New York: Springer.

Haroz, S., R. Kosara, and S. L. Franconeri. 2015. “ISOTYPE Visualization: Working Memory, Performance, and Engagement with Pictographs.” ACM Conference on Human Factors in Computing Systems, 1191–1200. doi:10.1145/2702123.2702275.

Paff, M. L., B. R. Jack, B. L. Smith, J. J. Bull, and C. O. Wilke. 2018. “Combinatorial Approaches to Viral Attenuation.” bioRxiv, 29918. doi:10.1101/299180.

24 使用较大的轴标签

原文: 24 Use larger axis labels

校验:飞龙

自豪地采用谷歌翻译

如果你只拿走本书中的一节课,那么就是这个:注意轴标签,轴刻度标签和其他各种绘图注解。情况就是他们太小了。根据我的经验,几乎所有的绘图库和图形软件都有很差的默认值。如果你使用默认值,你几乎肯定做出了糟糕的选择。

例如,考虑图 24.1 。我一直看到这样的图形。轴标签,轴刻度标签和图例标签都非常小。我们几乎看不到它们,我们可能需要放大页面来阅读图例中的注解。

图 24.1:澳大利亚职业男性运动员的体脂百分比与身高的关系。 (每个点代表一名运动员。)这个图形存在常见的问题,即文本元素太小而且几乎不易辨认。数据来源:Telford 和 Cunningham(1991)

该图的一个更好的版本如图 24.2 所示。我认为字体仍然太小,这就是为什么我把这个图形标记为丑陋。但是,我们正朝着正确的方向前进。在某些情况下,这个图形可能是合理的。我在这里的主要批评并不是标签不清晰,因为图形不平衡;与图的其余部分相比,文本元素太小。

图 24.2:男性运动员体脂百分比与身高的关系。这个图形是对图 24.1 的改进,但是文本元素仍然太小而且图形不平衡。数据来源:Telford 和 Cunningham(1991)

下图使用了我在本书中应用的默认设置。我认为它很平衡,文字清晰可见,并且符合图形的整体大小。

图 24.3:男性运动员的体脂百分比与身高的关系。所有图形元素都适当缩放。数据来源:Telford 和 Cunningham(1991)

重要的是,我们可以做过头并使标签太大(图 24.4 )。有时我们需要大标签,例如,如果要减小图形的大小,但图形的各种元素(特别是标签文本和图形符号)需要组合在一起。在图 24.4 中,用于可视化数据的点相对于文本而言太小。一旦我们解决了这个问题,这个图形就会再次被接受(图 24.5 )。

图 24.4:男性运动员的体脂百分比与身高的关系。文本元素相当大,如果要以非常小的比例复制图形,它们的大小可能是合适的。但是,这个图形总体上并不平衡;这些点相对于文本元素来说太小了。数据来源:Telford 和 Cunningham(1991)

图 24.5:男性运动员的体脂百分比与身高的关系。所有图形元素都调整了大小,使得图形平衡并且可以在小型比例尺上再现。数据来源:Telford 和 Cunningham(1991)

您可以查看图 24.5 ,发现一切都太大了。但是,请记住,它应该按比例缩小。缩小图形,使其宽度只有一英寸或两英寸,看起来很好。实际上,在本章中,这是在这个比例尺下唯一看起来很好的图形。

始终查看图形的缩小版本,来确保轴标签大小合适。

我认为有一个简单的心理原因,为什么我们经常制作轴标签太小的图形,它与大型,高分辨率的电脑显示器有关。我们经常在计算机屏幕上预览图形,通常我们这样做,而图形在屏幕上占用了大量空间。在这种查看模式中,即使相对较小的文本看起来也非常精细和清晰,大文本看起来很笨拙和突出。事实上,如果你从本章中取出第一个图形并将其放大到填满整个屏幕,你可能会认为它看起来很好。解决方案是始终确保以真实的打印尺寸查看图形。你可以在屏幕上将它们缩小只有三到五英寸的宽度,或者你可以去你房间的另一边检查这个图形是否在相当长的距离内看起来很好。

参考

Telford, R. D., and R. B. Cunningham. 1991. “Sex, Sport, and Body-Size Dependency of Hematology in Highly Trained Athletes.” Medicine and Science in Sports and Exercise 23: 788–94.

25 避免线条图

原文: Avoid line drawings

校验:飞龙

自豪地采用谷歌翻译

尽可能使用实心有色的形状来显示数据,而不是使用勾勒出这些形状的线条。实心形状更容易被视为连贯的对象,不太可能产生视觉虚影或光学幻觉,并且比轮廓更容易传递东西。根据我的经验,使用实心形状的可视化,比使用线条图的等效版本更清晰,更令人愉悦。因此,我尽可能避免使用线条图。但是,我想强调的是,这一建议并未取代比例墨水原理(第 17 章)。

线条图在数据可视化领域有着悠久的历史,因为在 20 世纪的大部分时间里,科学可视化都是手工绘制的,必须以黑白再现。这排除了填充纯色的区域的使用,包括实心灰度填充。相反,有时通过应用阴影线,网状线或点画图案来模拟填充区域。早期绘图软件模仿手绘,同样广泛使用线条图,虚线或点线图案,和阴影线。虽然现代可视化工具和现代重制和发布平台没有先前的限制,但许多绘图应用仍默认使用轮廓和空心形状而不是填充区域。为了提高你对这个问题的认识,我将在这里向你展示几个例子,用线条和填充形状绘制的相同图形的。

在直方图和条形图中,可以看到线条图的最常见且同时最不合适的使用方式。将条形绘制为轮廓的问题在于,任何给定线的哪一侧在条形内部,以及哪一侧在外部并不是立即显而易见的。因此,特别是当条形之间存在间隙时,我们最终会产生一种令人困惑的视觉图案,这会损害图形的主要信息(图 25.1 )。用浅色填充条形,或者如果不能进行彩色重制,则用灰色填充避免了这个问题(图 25.2)。

图 25.1:使用空心条形绘制的泰坦尼克号乘客年龄的直方图。空心条形形成一个令人困惑的视觉图案。在直方图的中心,很难分辨出哪些部分位于条形图内部,以及哪些部分位于外部。

图 25.2:图 25.1 的相同直方图,现在用实心条形绘制。在该图的变形中,年龄分布的形状更容易辨别。

接下来,我们来看看旧式的密度绘图。我正在显示三种鸢尾花的萼片长度分布的密度估计,完全绘制为黑白线条图(图 25.3 )。分布仅通过它们的轮廓显示,并且因为图形是黑白的,我们使用不同的线条样式来区分它们。这个图形有两个主要问题。首先,虚线样式不能在曲线下方的区域与其上方的区域之间提供清晰的分离。虽然我们的视觉系统非常擅长将各个线条元素连接成一条连续的线条,但虚线看起来仍然是多孔的,并不能作为封闭区域的有效边界。其次,因为线条相交并且它们所包围的区域没有阴影,所以难以从六个不同的形状轮廓中,分割出不同的密度。如果我对所有三个分布使用实线而不是虚线,这种效果会更强。

图 25.3:三个不同鸢尾花物种的萼片长度的密度估计。用于杂色和弗吉尼亚鸢尾的虚线样式,减损了曲线下方的区域与它们上方的区域不同的感觉。

我们可以尝试通过使用彩色线条而不是虚线,来解决多孔边界的问题(图 25.4 )。然而,所得图中的密度区域仍然几乎没有视觉存在感。总的来说,我发现填充区域的版本(图 25.5 )最清晰直观。然而,重要的是使填充区域部分透明,以便可以看到每个物种的完整分布。

图 25.4:三个不同鸢尾花物种的萼片长度的密度估计。通过使用实线,彩色线条,我们解决了图 25.3 的问题,即线条下方和上方的区域似乎是连通的。但是,我们仍然不了解每条曲线下面积的大小。

图 25.5:三个不同鸢尾花物种的萼片长度的密度估计,显示为部分透明的阴影区域。

当不同类型的点绘制为空心圆,三角形,十字等时,折现图也会出现在散点图的上下文中。例如,请考虑图 25.6 。该图包含许多视觉噪声,并且不同类型的点彼此之间没有很强的分离。用实心有色形状绘制相同的图形解决了这个问题(图 25.7 )。

图 25.6:城市燃油效率与发动机排量的关系,适用于带前轮驱动(FWD),后轮驱动(RWD)和四轮驱动(4WD)的汽车。不同的点样式,所有黑白线条绘图符号,都会产生大量的视觉噪音,并且使图形难以阅读。

图 25.7:城市燃油效率与发动机排量的关系。通过对不同的传动系统使用不同的颜色和不同的实心形状,该图清楚地分离了传动系统,同时在需要时保持可以灰度重现。

我非常喜欢实心点而非空心点,因为实心点具有更多的视觉存在感。我有时听到支持空心点的论点是,它们有助于过度绘图,因为每个点中间的空白区域允许我们看到可能位于其下方的其他点。在我看来,能够看到过度绘制的点的好处,通常不会超过空心符号增加的视觉噪音的损害。还有其他处理过度绘图的方法,请参阅第 18 章获取一些建议。

最后,让我们考虑一下箱线图。箱线图通常用空箱子绘制,如图 25.8 。我更喜欢箱子的浅色阴影,如图 25.9 。阴影将箱子与背景分离得更清楚,特别是当我们显示彼此相邻的多个箱图时,如图 25.8 和 25.9 的情况。在图 25.8 中,大量的箱子和线条可以再次创造出幻觉,即箱子外面的背景区域实际上在其他形状的内部,就像我们在图 25.1 中看到的那样。图 25.9 消除了这个问题。我有时听到过这样的批评:箱子内部的阴影给中间 50% 的数据带来了太多的权重,但我不同意这个论点。无论箱子的阴影是否存在,给予中心 50% 的数据权重而不是其他数据,是箱线图固有的。如果您不想强调这一点,那么请不要使用箱线图。相反,使用提琴图,抖动的点或 Sina 图(第九章)。

图 25.8:2016 年内布拉斯加州林肯市的日平均温度分布。箱子采用传统方式绘制,没有阴影。

图 25.9:2016 年内布拉斯加州林肯市的日平均温度分布。通过给于箱子浅灰色阴影,我们可以使它们在背景中更加突出。

26 不要走向 3D

原文: https://serialmentor.com/dataviz/no-3d.html

校验:飞龙

自豪地采用谷歌翻译

3D 绘图非常受欢迎,特别是在商业演示中,也在学术界中。它们也几乎总是被不恰当地使用。我很少看到 3D 无法图形通过转换为常规 2D 图形来改进。在本章中,我将解释为什么 3D 图形存在问题,为什么通常不需要它们,以及在有限的情况下 3D 图可能是合适的。

26.1 避免无理由的 3D

许多可视化软件使您可以通过将图形元素转换为三维对象来修改图形。最常见的是,我们看到饼图变成了在空间中旋转的圆盘,条形图变成了列,折线图变成了带子。值得注意的是,在这些情况中,第三维都没有传达任何实际数据。 3D 仅用于装饰和点缀绘图。我认为 3D 的使用是无理由的。这是非常糟糕的,应该从数据科学家的视觉词汇中删除。

无理由 3D 的问题是,将 3D 对象投影到二维来在监视器上打印或显示,会使数据失真。当人类视觉系统将 3D 图像的 2D 投影映射回 3D 空间时,它试图校正这种失真。但是,这种修正只能是局部的。举个例子,让我们看一个带有两个切片的简单饼图,一个代表 25% 的数据,一个代表 75%,并在空间中旋转这个饼图(图 26.1 )。当我们改变我们看饼图的角度时,切片的大小似乎也会改变。特别是,当我们从水平角度观察饼图时,位于饼图前面的 25% 切片看起来比 25% 大得多(图 26.1 a)。

图 26.1:从四个不同角度显示的相同 3D 饼图。在三维中旋转的饼图,会使前面的饼图切片看起来比实际大,后面的饼图切片看起来更小。这里,在部分(a),(b)和(c)中,对应于 25% 的数据的蓝色切片在视觉上占据了饼图区域的 25% 以上。只有部分(d)是数据的准确表示。

对于其他类型的 3D 绘图也会出现类似的问题。图 26.2 使用 3D 条形图显示按类别和性别划分的泰坦尼克号乘客。由于条形相对于轴线的布置方式,条形都看起来比它们实际上短。例如,一等乘客共有 322 名,但图 26.2 表明这个数字小于 300。这种错觉的产生是因为代表数据的列对于两个背面有一定距离,灰色水平线在其上绘制。要查看此效果,请考虑延伸其中一列的任何底边,直到它到达最低的灰线(表示 0)。然后,想象对任何顶边执行相同操作,您将看到所有列比第一眼看到的样子要高。 (有关此图的更合理的 2D 版本,请参见第六章中的图 6.10。)

图 26.2:泰坦尼克号上一,二,三等舱的男性和女性乘客人数,显示为三维堆叠条形图。一等,二等和三等舱的乘客总数分别为 322,279 和 711(见图 6.10 )。然而在这个绘图中,一等舱的条形似乎代表不到 300 名乘客,三等舱的条形似乎代表不到 700 名乘客,而二等舱的条形似乎比实际的 279 名乘客更接近 210-220 名乘客。此外,三等舱的条形在视觉上占主导地位,并使三等舱乘客的数量看起来比实际大。

26.2 避免 3D 位置刻度

虽然无理由使用 3D 的可视化很容易被视为不好,但如何考虑使用三个真正的位置刻度(xyz)来表示数据的可视化,却不太清楚。在这种情况下,第三维的使用用于实际目的。然而,由此产生的绘图经常难以解释,在我看来应该避免。

考虑一下 32 辆汽车的燃油效率与排量和功率的三维散点图。我们之前在第二章中看到过这个数据集。在这里,我们沿 x 轴绘制排量,沿 y 轴绘制功率,沿 z 轴绘制燃油效率,我们用点表示每辆车(图 26.3 )。尽管从四个不同的角度展示了这种 3D 可视化,但很难想象这些点在空间中的确切分布。我发现图 26.3 的部分(d)特别令人困惑。它几乎似乎显示了一个不同的数据集,即使除了我们查看点的角度之外没有任何变化。

图 26.3:32 辆汽车(型号 1973-74 )的燃油效率与排量和功率的关系。每个点代表一辆汽车,点的颜色代表汽车的汽缸数。四个面板(a)-(d)显示完全相同的数据,但使用不同的视角。数据来源:Motor Trend,1974。

这种 3D 可视化的基本问题是,它们需要两个独立的连续数据转换。第一个转换将数据从数据空间映射到 3D 可视化空间,在第二章和第三章中的位置刻度上下文中讨论。第二个将来自 3D 可视化空间的数据映射到最终图形的 2D 空间。(对于在真实 3D 环境中显示的可视化,显然不会发生第二次转换,例如当显示为物理雕塑或 3D 打印的对象时。这里我的主要目标是在 2D 显示器上显示 3D 可视化。)第二次转换不可逆的,因为 2D 显示器上的每个点对应于 3D 可视化空间中的直线上的点。因此,我们无法唯一地确定任何特定数据点在 3D 空间中的位置。

然而,我们的视觉系统试图逆转 3D 到 2D 的转换。然而,这个过程是不可靠的,充满了错误,并且高度依赖于图像中的适当线索,它们传达了一些三维的感觉。当我们删除这些线索时,逆转变得完全不可能。这可以在图 26.4 中看到,除了所有深度线索都被删除外,它与图 26.3 相同。结果是四个随机排列的点,我们根本无法解释,它们甚至不容易相互关联。你能说出部分(a)中哪些点对应部分(b)中的哪些点?我当然不能。

图 26.4:32 辆汽车(型号 1973-74)的燃油效率与排量和功率的关系。四个面板(a)-(d)对应于图 26.3 中的相同面板,只是所有提供深度线索的网格线都已被移除。数据来源:Motor Trend,1974。

我认为通常应该只应用一个适当的可逆转换,并将数据直接映射到 2D 空间,而不是应用两个单独的数据转换,其中一个是不可逆的。由于变量也可以映射到颜色,大小或形状刻度上,因此很少需要将第三维添加为位置刻度。例如,在第二章中,我同时绘制了燃料效率数据集的五个变量,但仅使用了两个位置刻度(图 2.5)。

在这里,我想展示两种替代方法来精确绘制图 26.3 中使用的变量。首先,如果我们主要关注燃料效率作为响应变量,我们可以绘制两次,一次针对排量,一次针对功率(图 26.5)。其次,如果我们对排量和功率如何相互关联更感兴趣,将燃油效率作为第二兴趣变量,我们可以绘制功率与排量的关系,并将燃油效率映射为点的大小(图 26.6 )。这两个图形比图 26.3 更有用,更不容易混淆。

图 26.5:燃油效率与排量(a)和功率(b)的关系。数据来源:Motor Trend,1974。

图 26.6:32 辆汽车的功率与排量,燃料效率由点的大小表示。数据来源:Motor Trend,1974。

您可能想知道 3D 散点图的问题是实际数据表示(点)本身不会传达任何 3D 信息。例如,如果我们使用 3D 条形图会发生什么?图 26.7 显示了一个典型的数据集,可以用 3D 条形图显示,1940 年弗吉尼亚州的死亡率,按年龄、性别和住房位置分组。我们可以看到 3D 条形确实帮助我们解释绘图。人们不太可能将前景中的条形误认为背景中的条形,反之亦然。然而,在图 26.2 的背景下讨论的问题也存在于此。很难准确判断单个条的高度,并且很难进行直接比较。例如,在 60-64 岁年龄组的城市女性死亡率,是高于还是低于 65-69 岁年龄组的城市男性?

图 26.7:弗吉尼亚州 1940 年的死亡率,可视化为 3D 条形图。显示四组人(城市和农村,女性和男性)和五个年龄组(50-54,55-59,60-64,65-69,70-74)的死亡率,并以每一千人的死亡数为单位报告。这个图形标记为“不好”,因为 3D 视角使得绘图难以阅读。数据来源: Molyneaux,Gilliam 和 Florant(1947)

通常,最好使用格子图(第 21 章)而不是 3D 可视化。当显示为格子图时,弗吉尼亚死亡率数据集仅需要四个图(图 26.8 )。我认为这个图形清晰易懂。很明显,男性的死亡率高于女性,城市男性的死亡率似乎高于农村男性,而城市和农村女性的这种趋势并不明显。

图 26.8:1940 年弗吉尼亚州的死亡率,可视化为格子图图。显示四组人(城市和农村,女性和男性)和五个年龄组(50-54,55-59,60-64,65-69,70-74)的死亡率,并以每千人死亡数为单位报告。数据来源: Molyneaux,Gilliam 和 Florant(1947)

26.3 3D 可视化的适当使用

但是,带有 3D 位置刻度的可视化有时是合适的。首先,如果可视化是交互式的并且可以由观看者旋转,或者如果它在 VR 或增强现实环境中显示,并可以从多个角度检查,则前一部分中描述的问题就不重要了。其次,即使可视化不是交互式的,显示它慢慢旋转,而不是从一个角度作为静态图像来查看,将允许观看者辨别不同图形元素所在的 3D 空间中的哪里。人脑非常善于从不同角度拍摄的一系列图像重建 3D 场景,图形的慢速旋转恰好提供了这些图像。

最后,当我们想要显示实际的 3D 对象和/或映射到它们的数据时,使用 3D 可视化是有意义的。例如,显示山区的地形起伏是一个合理的选择(图 26.9 )。类似地,如果我们想要可视化映射到其结构上的蛋白质的进化序列保守性,则将结构显示为 3D 对象是有意义的(图 26.10 )。然而,在任何一种情况下,如果它们被显示为旋转动画,这些可视化仍将更容易解释。虽然这在传统印刷出版物中是不可能的,但是当在网上发布图形或进行演示时,可以很容易地完成。

图 26.9:地中海科西嘉岛的地形。数据来源:哥白尼土地监测服务

图 26.10:蛋白质进化变异的模式。有色的管子代表来自细菌大肠杆菌的蛋白质外切核酸酶 III 的主链(蛋白质数据库标识符:1AKO)。着色表示该蛋白质中各个位点的进化保守性,深色表示保守氨基酸,浅色表示可变氨基酸。数据来源: Marcos 和 Echave(2015)

参考

Molyneaux, L., S. K. Gilliam, and L. C. Florant. 1947. “Differences in Virginia Death Rates by Color, Sex, Age, and Rural or Urban Residence.” American Sociological Review 12: 525–35.

Marcos, M. L., and J. Echave. 2015. “Too Packed to Change: Side-Chain Packing and Site-Specific Substitution Rates in Protein Evolution.” PeerJ 3: e911.

27 了解最常用的图像文件格式

原文: 27 Understanding the most commonly used image file formats

校验:飞龙

自豪地采用谷歌翻译

任何为数据可视化制作图形的人,最终都必须知道一些信息,关于图形如何存储在计算机上。有许多不同的图像文件格式,每种格式都有其自身的优点和缺点。选择正确的文件格式和正确的工作流程,可以缓解许多图形制作问题。

我自己的偏好是将 pdf 用于高质量的可供出版的文件,并且通常尽可能使用 png 用于在线文档和需要位图图形的其他场景,如果 png 文件太大,则将 jpeg 作为最后的手段。在下文中,我将解释这些文件格式之间的主要区别,以及它们各自的优缺点。

27.1 位图和矢量图形

各种图形格式之间最重要的区别在于,它们是位图还是矢量(表 27.1 )。位图或光栅图形将图像存储为各个点(称为像素)的网格,每个点都具有指定的颜色。相比之下,矢量图形存储图像中各个图形元素的几何排列。因此,矢量图像包含诸如“从左上角到右下角的黑线,以及从左下角到右上角的红线”的信息,并且随着它显示在屏幕上或打印出来,图像在运行中实时重新创建。

表 27.1:常用的图像文件格式

缩写 名称 类型 应用
PDF Portable Document Format(可移植文档格式) 矢量 一般用途
EPS Encapsulated PostScript(封装的 PostScript) 矢量 一般用途,过时;应使用 pdf
SVG Scalable Vector Graphics(可缩放矢量图形) 矢量 在线使用
PNG Portable Network Graphics(便携式网络图形) 位图 针对线条图进行了优化
JPEG Joint Photographic Experts Group(联合图像专家组) 位图 针对摄影图像进行了优化
TIFF Tagged Image File Format(标记图像文件格式) 位图 印刷制作,准确的色彩再现
RAW 原始图像文件 位图 数码摄影,需要后期处理
GIF Graphics Interchange Format(图形交换格式) 位图 对静态图形过时,对于动画不错

矢量图形也称为“与分辨率无关”,因为它们可以放大到任意大小而不会丢失细节或清晰度。对于演示,请参见图 27.1 。

图 27.1:矢量图形和位图之间关键区别的图示。 (a)原始图像。黑色方块表示我们在(b)和(c)部分放大的区域。 (b)当图像被存储为位图图形时,来自部分(a)的高粱区域的渐进放大。随着我们进一步放大,我们可以看到图像如何变得越来越像素化。 (c)图像的矢量表示的渐进放大。图像在任意放大倍率下保持完美清晰度。

矢量图形有两个缺点,可能并且经常会在实际应用中造成麻烦。首先,因为矢量图形由显示它们的图形程序在运行中重新绘制,在两个不同程序或两台不同计算机上,可能出现相同图形的外观差异。文本最常出现此问题,例如,当所需字体不可用且由呈现软件替换为不同字体时。字体替换通常允许观看者按预期阅读文本,但是得到的图像很少看起来很好。有一些方法可以避免这些问题,例如在 pdf 文件中概述或嵌入所有字体,但它们可能需要特殊的软件和/或特殊技术知识才能实现。相比之下,位图图像看起来总是一样的。

其次,对于非常大和/或复杂的图形,矢量图形的文件大小可能会大幅增长的并且渲染速度很慢。例如,数百万个数据点的散点图,将包含每个单独点的 x 和 y 坐标,并且在渲染图像时需要绘制每个点,即使点重叠和/或被其他图形元素隐藏。因此,文件的大小可能是几兆字节,并且渲染软件可能花费一些时间来显示该图形。当我在 21 世纪初期担任博士后时,我曾经创建了一个 pdf 文件,当时花了将近一个小时才能在 Acrobat 阅读器中显示。虽然现代计算机速度更快,几分钟的渲染时间几乎都是闻所未闻的,但如果你想将你的图形嵌入到更大的文档中,并且每次你显示带有有问题的图形的页面,你的 pdf 阅读器停止运行,即使是几秒钟的渲染时间也可能是破坏性的。当然,另一方面,只有少量元素(比如一些数据点和一些文本)的简单图形作为矢量图形通常会小得多,而且查看软件甚至可以比相应的位图图像更快地渲染这些图形。

27.2 位图图形的无损和有损压缩

大多数位图文件格式采用某种形式的数据压缩来保持文件大小可管理。压缩有两种基本类型:无损和有损。无损压缩可确保压缩图像的像素与原始图像与像素相同,而有损压缩则接受一些图像质量下降,来换取较小的文件大小。

要了解何时使用无损或有损压缩是合适的,有必要对这些不同的压缩算法如何工作有基本的了解。我们首先考虑无损压缩。想象一下具有黑色背景的图像,其中图像的大部分区域是纯黑色,因此许多黑色像素紧挨着彼此出现。每个黑色像素可以由一行中的三个零表示:0 0 0,表示图像的红色,绿色和蓝色通道中的零强度。图像中的黑色背景区域对应于图像文件中的数千个零。现在假设图像中的某个位置是 1000 个连续的黑色像素,对应于 3000 个零。我们可以简单地存储我们需要的零的总数,而不是写出所有这些零。通过写入3000 0。通过这种方式,我们只用两个数字传递完全相同的信息,即计数(此处为 3000)和值(此处为 0)。多年来,已经开发了许多按照这种方法的巧妙技巧,现代无损图像格式(例如 png)可以以惊人的效率存储位图数据。然而,当图像具有大面积的均匀颜色时,所有无损压缩算法都表现最佳,因此表 27.1 列出了针对线条图优化的 png。

摄影图像很少有彼此相邻的相同颜色和亮度的多个像素。相反,他们在许多不同的刻度上都有渐变和其他有规律的图案。因此,这些图像的无损压缩通常不能工作得很好,并且已经开发出有损压缩作为替代方案。有损压缩的关键思想是,图像中的某些细节对于人眼来说太微小,并且可以丢弃那些细节而不会明显降低图像质量。例如,考虑 1000 像素的渐变,每个像素的颜色值略有不同。如果仅使用 200 种不同颜色绘制渐变并且每五个相邻像素以完全相同的颜色着色,则渐变看起来几乎相同。

最广泛使用的有损图像格式是 jpeg(表 27.1 ),实际上许多数码相机默认输出图像为 jpeg。 Jpeg 压缩对于摄影图像非常有效,并且通常可以在图像质量几乎没有降低的情况下,使文件大小的大幅减少。但是,当图像包含锐边(例如由线条图或文本创建)时,jpeg 压缩会失效。在这些情况下,jpeg 压缩会导致非常明显的虚影(图 27.2 )。

图 27.2:jpeg 虚影的图示。 (a)使用逐渐增强的 jpeg 压缩多次再现相同的图像。生成的文件大小在每个图像上方以红色文本显示。文件大小减少了 10 倍,从原始图像中的 432KB 减少到压缩图像中的 43KB,导致图像质量的轻微降低。但是,文件大小进一步减少 2 倍,仅为 25KB,会导致大量可见的虚影。 (b)放大最大压缩的图像会显示各种压缩虚影。照片来源:Claus O. Wilke

即使 jpeg 虚影非常微小以至于它们不能立即被肉眼看到,它们也会引起麻烦,例如在印刷生产中。因此,尽可能避免使用 jpeg 格式是个好主意。特别是,对于包含线条图或文本的图像,您应该避免使用它,就像数据可视化或屏幕截图一样。这些图像的适当格式是 png 或 tiff。我将 jpeg 格式专门用于摄影图像。如果图像包含摄影元素和线条图或文本,您仍应使用 png 或 tiff。这些文件格式的最坏情况是你的图像文件变大,而 jpeg 的最坏情况是你的最终产品看起来很难看。

27.3 在图像格式之间转换

通常可以将任何图像格式转换为任何其他图像格式。例如,在 Mac 上,您可以使用“预览”打开图像,然后导出为多种不同的格式。但是,在这个过程中,重要信息可能会丢失,信息永远不会重新获得。例如,在将矢量图形保存为位图格式之后,例如,作为 jpeg 的 pdf 文件,作为矢量图形的关键特征的分辨率无关已经丢失。相反,将 jpeg 图像保存为 pdf 文件并不会将图像神奇地转换为矢量图形。图像仍然是位图图像,只是存储在 pdf 文件中。同样,将 jpeg 文件转换为 png 文件不会删除 jpeg 压缩算法可能引入的任何虚影。

因此,始终以保持最大分辨率,准确性和灵活性的格式存储原始图像,是一个很好的经验法则。因此,对于数据可视化,要么将图形创建为 pdf,然后在必要时转换为 png 或 jpg,要么存储为高分辨率 png。同样,对于仅提供为位图的图像(如数码照片),将其存储为不带有损压缩的格式,或者如果无法实现,则尽可能少地压缩。此外,以尽可能高的分辨率存储图像,并在需要时缩小图像。

28 选择合适的可视化软件

原文: 28 Choosing the right visualization software

校验:飞龙

自豪地采用谷歌翻译

在本书中,我有目的地避免了数据可视化的一个关键问题:我们如何实际生成数据?我们应该使用什么工具?这个问题可以产生激烈的讨论,因为许多人对他们熟悉的特定工具有强烈的情感纽带。我经常看到人们大力捍卫他们自己喜欢的工具,而不是花时间学习新的方法,即使新方法有客观的好处。我会说坚持使用你知道的工具并非完全不合理。学习任何新工具都需要时间和精力,而且你将不得不经历一个痛苦的过渡期,使用新工具完成任务比使用旧工具要困难得多。经历这段时间是否值得付出努力,通常只有在人们投入资金来学习新工具之后才能回顾一下。因此,无论不同工具和方法的优缺点如何,最重要的原则是您需要选择适合您的工具。你是否能够制作想要制作的图形,而不需要过多的努力,是最重要的。

最好的可视化软件是允许您制作所需图形的软件。

话虽如此,我确实认为我们可以使用一般原则,来评估不同方法产生可视化的相对优点。这些原则大致可分解为可视化的可复现性,快速浏览数据的容易程度,以及输出的视觉外观可以调整到何种程度。

28.1 可复现性和可重复性

在科学实验的背景下,如果不同的研究小组进行相同类型的研究,且工作的总体科学发现将保持不变,我们将工作称为可复现的。例如,如果一个研究小组发现一种新的止痛药可以显着减轻所感知的头痛,而不会引起明显的副作用,并且不同的小组随后在不同的患者组中研究相同的药物并且具有相同的发现,那么该工作是可复现的。相反,如果通过在同一设备上重复完全相同的测量程序,同一个人可以获得非常相似或相同的测量结果,则工作是可重复的。例如,如果我称量我的狗,并且发现它重 41 磅,然后我在相同的秤上再次称重它并再次发现它重 41 磅,那么这个测量是可重复的。

通过微小的修改,我们可以将这些概念应用于数据可视化。如果绘制的数据可用,并且可能已经应用的任何数据转换是精确指定的,则可视化是可复现的。例如,如果你制作一个图形然后向我发送你绘制的确切数据,那么我可以制作一个看起来非常相似的图形。我们可能使用稍微不同的字体或颜色或点的大小,来显示相同​​的数据,因此这两个图形可能不完全相同,但您的和我的图形传达相同的信息,因此是彼此的复制品。另一方面,如果可以从原始数据重建完全相同的视觉外观(直到最后一个像素),则可视化是可重复的。严格来说,可重复性要求即使图中有随机元素,例如抖动(第 18 章),这些元素也是以可重复的方式指定的,并且可以在将来某一天重新生成。对于随机数据,可重复性通常要求我们指定一个特定的随机数发生器,我们为其设置和记录种子。

在本书中,我们已经看到许多数字示例,它们复现但不重复其他图形。例如,第 25 章显示了几组图,其中每组中的所有图形显示相同的数据,但每组中的每个图形看起来有些不同。类似地,图 28.1a 是图 9.7 的重复,包括应用于每个数据点的随机抖动,而图 28.1b 只是这个图形的一个复现。图 28.1 b 具有与图 9.7 不同的抖动,并且它还使用了完全不同的视觉设计,即使它们清楚地传达数据的相同信息,这两个图形看起来也非常不同。

图 28.1:图形的重复和复现。部分(a)重复图 9.7 。两个图形相同,包括应用于每个点的随机抖动。相比之下,部分(b)是复现而不是重复。特别是,部分(b)的抖动与部分(a)或图 9.7 中的抖动不同。

当我们使用交互式绘图软件时,很难实现可重复性和可复现性。许多交互式程序允许您转换或以其他方式操纵数据,但不会跟踪您执行的每个单独的数据转换,而只跟踪最终产品。如果你使用这种程序制作一个图形,然后有人要求你复现图形或用不同的数据集创建类似的图形,你可能很难这样做。在我担任博士后和年轻的助理教授期间,我使用了一个交互式程序来完成我所有的科学可视化,这个确切的问题在我身上发生了好几次。例如,我为科学手稿制作了几个图形。几个月之后,当我想要修改手稿,并需要复现其中一个图形的略微修改版本时,我意识到我不太确定我是如何制作原始图形的。这种经历教会我尽可能远离交互程序。我现在以编程方式制作图形,通过编写从原始数据生成图形的代码(脚本)。任何能够访问所使用的生成脚本、编程语言以及特定库的人,通常都可以重复通过编程生成的图形。

28.2 数据探索与数据展示

数据可视化有两个不同的阶段,它们的要求非常不同。首先是数据探索。每当您开始使用新数据集时,您需要从不同角度查看它,并尝试各种方式对其进行可视化,以便了解数据集的主要特征。在这个阶段,速度和效率至关重要。您需要尝试不同类型的可视化,不同的数据转换以及数据的不同子集。您可以越快地遍历对数据查看的不同方式,您将探索得越多,您注意到数据中您可能忽略的重要特征的可能性就越高。第二阶段是数据展示。一旦您了解了数据集,就可以进入它,并了解要向观众展示的内容。这一阶段的关键目标是制作一个高质量,出版物可用的图形,可以打印在文章或书籍中,包含在演示文稿中,或发布在互联网上。

在探索阶段,你制作的图形是否具有吸引力是次要的。如果缺少轴标签,图例混乱或符号太小,只要您可以评估数据中的各种模式,就可以了。然而,重要的是,您可以轻松地更改数据的显示方式。要真正探索数据,您应该能够快速从散点图转移到重叠的密度分布图到箱形图到热图。在第二章中,我们讨论了所有可视化如何包含从数据到美学的映射。精心设计的数据探索工具,将允许您轻松更改哪些变量映射到哪个美学,并且它将在单个一致框架内,提供各种不同的可视化选项。然而,根据我的经验,许多可视化工具(特别是用于编程生成图形的库)没有以这种方式建立。相反,它们按照绘图类型进行组织,其中每种不同类型的绘图需要稍微不同的输入数据,并且具有其自己的特殊接口。这些工具可能妨碍高效的数据探索,因为很难记住所有不同的绘图类型的工作原理。我鼓励您仔细评估您的可视化软件是否允许快速数据探索,或者它是否会妨碍您。如果它更频繁地妨碍,您可能从探索替代可视化选项中受益。

一旦我们确定了我们想要可视化数据的确切程度,我们想要进行哪些数据转换,以及使用什么类型的绘图,我们通常都希望制作一个高质量的数据用于发布。在这一点上,我们有几种不同的途径可以选择。首先,我们可以使用我们用于初步探索的相同软件平台来确定图形。其次,我们可以将平台切换到一个可以让我们更好地控制最终产品的平台,即使该平台更难以探索。第三,我们可以使用可视化软件生成草图,然后使用图像处理或插图程序(如 Photoshop 或 Illustrator)进行手动后处理。第四,我们可以手动重绘整个图形,使用笔和纸或使用插图程序。

所有这些途径都是合理的。但是,我想提醒您,不要在常规数据分析流水线或科学出版物中手动修改数据。图形制作流水线中的手动步骤,使得重复或复现图形本身是困难且耗时的。根据我从事自然科学的经验,我们很少只制作图形一次。在研究过程中,我们可能会重做实验,扩展原始数据集,或者在稍微改变的条件下重复几次实验。我在出版过程的后期已多次看到它,当我们认为一切都已完成并最终确定时,我们最终对我们分析数据的方式进行了一些小修改,因此所有图形都必须重新绘制。我也看到,在类似的情况下,不重做分析或不重绘图形的决定,是因为所涉及的努力,或者因为制作原始图形的人已经搬走或者找不到了。在所有这些场景中,不必要的复杂且不可复现的数据可视化流水线会阻碍最佳科学的产生。

话虽如此,我对手工绘制的图形或手动后处理的图形,没有任何原则性的关注,例如更改轴标签,添加注解或修改颜色。这些方法可以产生美丽而独特的图形,这些图形无法以任何其他方式轻松制作。事实上,随着计算机生成的复杂和精致的可视化变得越来越普遍,我观察到手动绘制的图形正在复苏(参见图 28.2 的例子)。我认为情况就是这样,因为这些图形代表了一种独特和个性化的数据处理,否则可能是数据的例行公事的描述。

图 28.2:引入下一代测序方法后,每个基因组的测序成本下降得比摩尔定律预测的要快得多。这个手绘的图形复现了由美国国立卫生研究院制作的广泛宣传的可视化。数据来源:国家人类基因组研究所

28.3 分离内容和设计

一个好的可视化软件应该允许您分别思考图形的内容和设计。对于内容,我指的是所显示的特定数据集,应用的数据转换(如果有的话),从数据到美学的特定映射,刻度,轴范围和绘图类型(散点图,折线图,条形图,箱形图等)。另一方面,设计描述了一些特征,例如前景色和背景色,字体规格(例如字体大小,字体和字体系列),符号形状和大小,图例的位置,轴刻度,轴标题和绘图标题,以及该图是否具有背景网格。当我处理新的可视化时,我通常首先确定内容应该是什么,使用前一小节中描述的快速探索。一旦设置了内容,我可能会调整设计,或者更有可能我将应用我喜欢的预定义设计和/或在更大的工作环境中向图形提供一致的外观。

在我用于本书的软件 ggplot2 中,内容和设计的分离是通过主题实现的。主题指定图形的视觉外观,并且很容易拍摄现有图形并对其应用不同的主题(图 28.3 )。主题可以由第三方编写并作为 R 包分发。通过这种机制,围绕 ggplot2 开发了一个蓬勃发展的附加主题生态系统,它涵盖了各种不同的风格和应用场景。如果您使用 ggplot2 制作图形,几乎可以肯定找到满足您设计需求的现有主题。

图 28.3:1970 年至 2015 年的美国失业人数。使用四种不同的 ggplot2 主题显示相同的图形:(a)本书的默认主题;(b)ggplot2 的默认主题,它是我用来绘制本书中所有图形的绘图软件;(c)模仿经济学人所显示的可视化的主题;(d)模仿 FiveThirtyEight 所显示的可视化的主题。FiveThirtyEight 经常使用轴标签来支持绘图标题和副标题,因此我相应调整了图形。数据来源:美国劳工统计局

内容和设计的分离,使数据科学家和设计师能够专注于他们最擅长的事情。大多数数据科学家不是设计师,因此他们主要关注的是数据,而不是可视化的设计。同样,大多数设计师不是数据科学家,他们应该能够为图形提供独特而吸引人的视觉语言,而不必担心特定数据,适当的转换等。在书籍,杂志,报纸和网站的出版界,长期以来一直遵循分离内容和设计的相同原则,其中作者提供内容但不提供布局或设计。布局和设计由一组专门从事该领域的人员创建,他们确保出版物以视觉上一致和吸引人的风格出现。这个原则是合乎逻辑且有用的,但在数据可视化领域尚未普及。

总之,在选择可视化软件时,请考虑如何轻松地复现图形,并使用更新或以其他方式更改的数据集重做它们,是否可以快速探索相同数据的不同可视化,以及您可以在多大程度上单独调整视觉设计,而不是生成图形内容。根据您的技能水平和编程的舒适度,在数据探索和数据展示阶段使用不同的可视化工具可能是有益的,您可能更愿意以交互方式或手动方式进行最终的视觉调整。如果您必须以交互方式制作图形,特别是使用不能跟踪所有数据转换和您已应用的视觉调整的软件,请考虑仔细记录您如何制作每个图形,使所有工作都可以复现。

29 讲述一个故事并提出一个观点

原文: 29 Telling a story and making a point

校验:飞龙

自豪地采用谷歌翻译

大多数数据可视化都是为了沟通目的而完成的。我们对数据集有深刻见解,我们有潜在的观众,我们希望向观众传达我们的见解。为了成功传达我们的见解,我们必须向观众展示一个清晰而令人兴奋的故事。对于科学家和工程师来说,对一个故事的需求似乎令他们感到不安,他们可能会把它等同于制造东西,把事情搞得一团糟,或者说过度吹捧结果。然而,这种观点忽略了故事在推理和记忆中所起的重要作用。当我们听到一个好故事时,我们会很兴奋,当故事很糟糕或没有故事时,我们会感到无聊。此外,任何沟通都会在观众心中创造一个故事。如果我们自己不提供一个清晰的故事,那么我们的观众就会制造一个。在最佳情况下,他们制造的故事与我们对所呈现材料的看法相当接近。然而,它可能并且往往更糟糕。这个虚构的故事可能是“这很无聊”,“作者错了”或“作者无能”。

讲故事的目的应该是运用事实和逻辑推理来让观众觉得有趣和兴奋。让我告诉你一个关于理论物理学家斯蒂芬霍金的故事。他在 21 岁 - 一年内被诊断出患有运动神经元疾病,并只剩下了两年的生命。霍金并没有接受这种困境,而是开始将全部精力投入到科学中。霍金最终活到 76 岁,成为他那个时代最有影响力的物理学家之一,并在严重残疾时完成了他所有的开创性工作。我认为这是一个令人信服的故事。它也完全基于事实和现实。

29.1 什么是故事?

在我们讨论将可视化转化为故事的策略之前,我们需要了解故事究竟是什么。故事是一组观测值,事实或事件,真实的或发明的,以特定的顺序呈现,以便它们在观众中产生情绪反应。情绪反应是通过故事开始时的冲突的构建以及故事结束时的某种类型的结局产生的。我们也将从冲突到结局的流程称为故事弧线度,每个好故事都有清晰,可识别的弧度。

经验丰富的作家知道,讲故事的标准模式与人类的思考方式产生共鸣。例如,我们可以使用“开头-挑战-行动-结局”的格式来讲述故事。事实上,这是我在前一小节中用于霍金故事的格式。我通过介绍物理学家斯蒂芬霍金的话题开启了这个故事。接下来,我提出了挑战,21 岁时运动神经元疾病的诊断。然后是行动,他对科学的激烈奉献。最后,我提出了结局,霍金过着漫长而成功的生活,最终成为他那个时代最有影响力的物理学家之一。其他故事格式也是常用的。报纸文章经常遵循“前导-发展-结局”格式,或者甚至更短的,只是“前导-发展”,其中前导部分预先给出了主要观点,随后的材料提供了更多细节。如果我们想以这种形式讲述霍金的故事,我们可能会开始用一句话来说,“有影响力的物理学家斯蒂芬霍金,他彻底改变了我们对黑洞和宇宙学的理解,比他的医生的预言多活了 53 年,并在他严重残疾的情况下,做出了所有最有影响力的工作。”这是前导。在发展阶段中,我们可以对霍金的生活,疾病和对科学的热爱进行更深入的描述。另一种形式是“行动 - 背景 - 发展 - 高潮 - 结束”,它比“开头 - 挑战 - 行动 - 结局”更快地发展故事,但不像“前导 - 发展”那么快。在这种格式中,我们可能以一句话开头,如“年轻的斯蒂芬霍金,面临衰弱的残疾和早逝的前景,决定将他所有的努力投入到他的科学中,决心在他仍然可以的时候留下他的印记。”这种格式的目的是吸引观众并尽早建立情感联系,但不会立即泄露最终结局。

我在本章的目标不是更详细地描述这些标准的故事讲述形式。这些材料有很好的资源。对于科学家和分析师,我特别推荐 Schimel(2011)。相反,我想讨论如何将数据可视化引入故事弧线。最重要的是,我们需要意识到单个(静态)可视化很少会讲述整个故事。可视化可以说明开场,挑战,动作或解决,但不太可能同时传达故事的所有这些部分。要讲一个完整的故事,我们通常需要多个可视化。例如,在进行演示时,我们可能首先展示一些背景或动机材料,然后是创建挑战的图形,最后是提供结局的其他图形。同样,在一篇研究论文中,我们可能会呈现一系列绘图,共同创造令人信服的故事弧线。然而,也可以将整个故事弧线压缩成单个图形。这样的图形必须同时包含挑战和结局,并且它与以导演开头的故事弧线相当。

为了提供一个将图形融入故事的具体例子,我现在将根据两个图形讲述一个故事。第一个创造挑战,第二个用做结局。我的故事背景是生物科学中预印本的增长(另见第 13 章)。预印本是草稿形式的手稿,科学家在正式同行评审和官方出版之前与他们的同事分享它们。只要科学手稿存在,科学家就一直在分享手稿草稿。然而,在 20 世纪 90 年代早期,随着互联网的出现,物理学家意识到在中央存储库中存储和分发手稿草稿要高效得多。他们发明了预印本服务器,这是一个网络服务器,科学家可以上传,下载和搜索手稿草稿。

由物理学家开发并今天仍在使用的预印本服务器,称为 arXiv.org。成立不久后,arXiv.org 开始拓展并在相关的量化领域受到欢迎,包括数学,天文学,计算机科学,统计学,量化金融和量化生物学。在这里,我对 arXiv.org 的量化生物学(q-bio)部分的预印本提交感兴趣。从 2007 年到 2013 年底,每月提交量呈指数增长,但随后增长突然停止(图 29.1 )。 2013 年末必定会发生一些事情,从根本上改变了量化生物学预印本提交的格局。是什么原因导致了提交增长的巨大变化?

图 29.1:预印本服务器 arXiv.org 的量化生物学(q-bio)部分每月提交量的增长。 2014 年左右可以看到增长率的急剧转变。虽然 2014 年之前增长迅速,但从 2014 年到 2018 年几乎没有增长。请注意, y 轴是对数的,因此 y 线性增长对应于预印本提交量的指数增长。数据来源:Jordan Anaya,prepubmed.org

我认为 2013 年末标志着预印本在生物学上起飞的时间点,具有讽刺意味的是,这导致 q-bio 归档减缓其增长。 2013 年 11 月,生物特定的预印本服务器 bioRxiv 由冷泉港实验室(CSHL)出版社推出。 CSHL Press 是一家在生物学家中备受推崇的出版商。CSHL Press 的支持极大有助于通用预印本特别是 bioRxiv 在生物学家中的认可。那些对 arXiv.org 非常怀疑的生物学家对 bioRxiv 更加满意。因此,bioRxiv 迅速获得生物学家的认可,达到了 arXiv 从未到达的程度。实际上,在其推出后不久,bioRxiv 的每月提交量开始经历快速的指数级增长,并且 q-bio 提交量的减缓恰好与 bioRxiv 的这种指数增长的开始一致(图 29.2 )。许多量化生物学家可能已经在 q-bio 存放了的预印本,决定将其存放在 bioRxiv。

图 29.2: q-bio 的提交量增长的平缓,与 bioRxiv 服务器的引入相吻合。显示了通用预印本服务器 arxiv.org 的 q-bio 部分和生物学专用的预印本服务器 bioRxiv 的月度提交量的增长。 bioRxiv 服务器于 2013 年 11 月投入使用,其提交量自此以来呈指数级增长。似乎许多会向 q-bio 提交预印本的科学家,选择提交给 bioRxiv。数据来源:Jordan Anaya,www.prepubmed.org

这是我关于生物学预印本的故事。我故意用两个图形讲述它,即使第一个(图 29.1 )完全包含在第二个图形中(图 29.2 )。我认为这个故事在分成两部分时影响最大,这就是我在演讲中的表现方式。然而,图 29.2 本身可以用来讲述整个故事,而单图版本可能更适合于观众可能会有短暂注意力的媒体,例如社交媒体发布。

29.2 为将军制作一个图形

在本章的其余部分,我将讨论制作单个图形和图形集的策略,以帮助您的观众与您的故事联系,并在整个故事中保持参与。首先,最重要的是,您需要向观众展示他们真正能够理解的数据。遵循我在本书中提供的所有建议,并仍然制作令人混淆的图形,是完全有可能的。当这种情况发生时,你可能已经成为两个常见误解的受害者;首先,观众可以看到你的图形并立即推断出你想要的要点;第二,观众可以快速处理复杂的可视化并理解所显示的关键趋势和关系。这些假设都不是真的。我们需要尽一切努力帮助读者理解可视化的含义,并在我们看到的数据中展示相同的模式。这通常意味着少即是多。尽可能简化您的图形。删除与您的故事不相关的所有特性。只能保留重点。我将这个概念称为“为将军制作一个图形”。

几年来,我负责一项由美国陆军资助的大型研究项目。对于我们的年度进度报告,项目经理指示我排除很多数据。我所做的任何图形都应该清楚地表明我们的项目是如何取得成功的。项目经理告诉我,一位将军应该能够看到每个图形,并立即看到我们正在做的,如何改进或超过先前的能力。然而,当参与该项目的同事向我发送年度进展报告的图形时,许多图形都不符合这一标准。这些图形通常过于复杂,以在令人困惑的技术术语标注,或者根本没有明显的要点。大多数科学家没有接受过训练来为将军制作图形。

永远不要假设您的受众可以快速处理复杂的视觉显示。

有些人可能会听到这个故事,并得出结论,将军不是很聪明,或者只是不科学。我认为这是错误的带回家的消息。将军们非常忙碌。他们不能花 30 分钟试图破译一个神秘的图形。当他们向科学家提供数百万美元的纳税人资金进行基础研究时,他们可以期待的最少的回报,是一些明确的证据,证明有价值和有趣的事情已经完成。这个故事也不应该被误解为仅仅关于军事资金。将军是您可能想要通过可视化实现的任何图形的隐喻。它可以是您的论文或资助提案的科学审稿人,可以是报纸编辑,也可以是您所在公司的主管或主管的老板。如果你想要讲述你的故事,你需要制作适合所有这些将军的图形。

具有讽刺意味的是,阻碍为将军制作图形的第一件事,就是现代可视化软件使我们能够轻松地制作复杂的数据可视化。凭借几乎无限的可视化功能,在更多维度上钻取数据变得很诱人。事实上,我认为数据可视化领域的趋势使最复杂,多方面的可视化成为可能。这些可视化可能看起来非常令人印象深刻,但它们不太可能传达一个清晰的故事。考虑图 29.3,显示了 2013 年离开纽约市区的所有航班的到达延误。我怀疑这将需要一段时间来处理这个图形。

图 29.3:平均到达延误与距离纽约市的距离。每个点代表一个目的地,每个点的大小代表 2013 年从纽约市三个主要机场(纽瓦克,肯尼迪国际机场或拉瓜迪亚)之一到该目的地的航班数量。负延误意味着航班早到。实线表示到达延误和距离之间的平均趋势。无论行程距离如何,达美的到达延误始终低于其他航空公司。平均而言,美国航空在短距离内的延误率最低,但是对于长途旅行来说,延误最大。这个图形被标记为“不好”,因为它过于复杂。大多数读者会发现它令人困惑,并且不会直观地掌握图中显示的内容。数据来源:美国运输部,交通运输统计局。

我认为图 29.3 最重要的特征是美国和达美的到达时间最短。在简单的条形图中更好地传达了这种见解(图 29.4)。因此,图 29.4 是正确的图形,显示该故事是否与航空公司的到达延误有关,即使该图形不会挑战您的数据可视化技能。如果你当时想知道,这些航空公司的延误较小,是否因为他们没有飞出纽约市那么长时间,你可以提出第二个条形图,强调美国和达美都是纽约市的主要航空公司(图 29.5)。这两个条形图都丢弃了图 29.3 中显示的距离变量。还行吧。我们不需要可视化与我们的故事无关的数据维度,即使我们拥有它们,即使我们可以制作一个显示它们的图形。简单清晰比复杂混乱更好。

图 29.4:2013 年飞出纽约市区的航班的平均到达延误,按航空公司分组。所有飞出纽约市区的航空公司中,美国航空和达美航空的平均到达延误最低。数据来源:美国运输部,交通运输统计局。

图 29.5:2013 年飞往纽约市区的航班数量,按航空公司分组。在所有飞出纽约市区的航班中,达美航空和美国航空是第四和第五。数据来源:美国运输部,交通运输统计局。

当您尝试一次显示太多数据时,最终可能无法显示任何内容。

29.3 建立复杂的数字

但是,有时我们确实想要显示包含大量信息的更复杂的图形。在这些情况下,如果我们首先向他们展示图的简化版本,然后再展示完全复杂的最终版本,我们可以让读者更轻松。同样强烈建议使用相同的方法进行演示。永远不要直接跳到高度复杂的图形;首先展示一个容易消化的子集。

如果最终图形是一个小型多图(第 21 章
),显示了具有相似结构的的子图网格,这个建议特别相关。如果观众自己第一次看到单个子图,则整个网格更容易消化。例如,图 29.6 显示 2013 年美国联合航空公司离开纽瓦克机场(EWR)的起飞总数,按工作日细分。一旦我们看到并消化了这个图形,同时查看十个航空公司和三个机场的相同信息就更容易处理(图 29.7 )。

图 29.6:美国联合航空离开纽瓦克机场(EWR)的出发次数,按照工作日分组。大多数工作日具有大致相同的出发次数,但周末出发次数较少。数据来源:美国运输部,交通运输统计局。

图 29.7:按航空公司,机场和工作日拆解的 2013 年纽约市区机场的出发次数。美国联合航空公司和 ExpressJet 组成了离开纽瓦克机场(EWR)的绝大多数出发,而捷蓝,达美,美国航空和 Endeavor 的大部分航班,组成了离开肯尼迪机场(JFK)的大部分出发,达美,美国航空,Envoy 和 US Airways 组成了离开拉瓜迪亚(LGA)的大部分出发。大多数但不是所有航空公司在周末离开的次数少于工作日。数据来源:美国运输部,交通运输统计局。

29.4 让你的图形令人难忘

简单而干净的图形(如简单的条形图)具有以下优点:它们可以避免分散注意力,易于阅读,并让您的观众专注于您想要传达的最重要的要点。然而,简单性可能产生缺点:图形最终看起来很一般。他们没有任何突出的特性,让他们难忘。如果我快速连续向你展示十个条形图,那么你很难将它们分开,然后记住它们显示的内容。例如,如果您快速查看图 29.8 ,您会注意到与图 29.5 的视觉相似性,我在本章前面已经讨论过。然而,除了条形图之外,这两个图形没有任何共同之处。图 29.5 按照航空公司显示了离开纽约市区的航班数量,而图 29.8 显示了美国家庭中最受欢迎的宠物。这两个图都没有任何元素可以帮助您直观地感知图中所涵盖的主题,因此这两个图都不是特别难忘。

图 29.8:拥有一种或多种最受欢迎​​宠物的家庭数量:狗,猫,鱼或鸟类。这个条形图非常清晰,但不一定特别难忘。 “猫”一列仅用于创建与图 29.5 的视觉相似性。数据来源:2012 年美国宠物所有者和人口统计学资料手册,美国兽医协会

对人类感知的研究表明,视觉上更复杂性和更加独特的图形更令人难忘(Bateman 等 2010; Borgo 等 2012)。然而,视觉独特性和复杂性不仅影响可记忆性,因为它们可能妨碍人们快速浏览信息的能力,或使得值的微小差异难以区分。在极端情况下,一个图形可能是非常令人难忘,但完全令人困惑。这样的图形不是一个好的数据可视化,即使它作为一个令人惊叹的艺术作品不错。在另一个极端,图形可能非常清晰,但是可能容易忘记和无聊,这些图形可能没有我们可能预期的影响。总的来说,我们希望在两个极端之间取得平衡,并使我们的图形既令人难忘又清晰。 (然而,目标读者也很重要。如果一个图形是用于科学技术出版物,而不是广泛阅读的报纸或博客,我们通常会担心可记忆性。)

通过添加反映数据特征的视觉元素,我们可以使图形更难忘,例如数据集相关的事物或对象的绘图或象形图。通常采用的一种方法是以重复图像的形式显示数据值本身,使得图像的每个副本对应于所展示变量的特定数量。例如,我们可以将图 29.8 中的条形图替换为狗,猫,鱼和鸟的重复图像,按一定刻度绘制,使每个完整的动物对应 500 万个家庭(图 29.9)。因此,在视觉上,图 29.9 仍然可以作为条形图,但我们现在增加了一些视觉复杂性,使图形更令人难忘,我们还使用直接反映数据意义的图像显示数据。只需快速浏览一下这个图形,您就可以记住,除了鱼或鸟之外,还有更多的狗和猫。重要的是,在这样的可视化中,我们希望使用图像来表示数据,而不是简单地使用图像来装饰可视化或注解轴。在心理学实验中,选择后者倾向于分散注意力而不是有用(Haroz,Kosara 和 Franconeri 2015)。

图 29.9:拥有一种或多种最受欢迎​​宠物的家庭数量,显示为同型图。每只完整的动物代表着拥有这种宠物的 500 万个家庭。数据来源:2012 年美国宠物所有者和人口统计学资料手册,美国兽医协会

图 29.9 等可视化通常称为同型图。同型(isotype)这个词是作为国际体系图像教育系统(International System Of TYpographic Picture Education)的首字母缩写而引入的,严格来说它指的是代表物体,动物,植物或人的类似 logo 的简化象形图(Haroz,Kosara 和 Franconeri 2015)。但是,我认为更广泛地使用术语同型图,来应用于任何类型的可视化,它使用相同图像的重复副本来指示值的大小,是有意义的。毕竟,前缀“iso”表示“相同”,“类型”可以表示特定类型,类别或组。

29.5 保持一致,但不要重复

在讨论 21.2 章节中的复合图形时,我提到对较大图形的不同部分使用一致的视觉语言很重要。图形也是如此。如果我们制作的三个图形都是一个更大的故事的一部分,那么我们需要设计这些图形,使它们看起来像是在一起。但是,使用一致的视觉语言并不意味着一切看起来应该完全相同。反之。重要的是,描述不同分析的图形在视觉上是截然不同的,以便您的受众可以轻松识别一个分析的结束和另一个分析的开始位置。最好通过对总体故事的不同部分使用不同的可视化方法来实现。如果您已经使用了条形图,则接下来使用散点图,箱线图或折线图。否则,不同的分析会在观众心中模糊在一起,并且他们很难将故事的一部分与另一部分区分开来。例如,如果我们从章节 21.2 重新设计图 21.8,使得它只使用条形图,结果显然不那么明显,更令人困惑(图 29.10 )。

图 29.10:男性和女性运动员的生理机能和身体组成。误差条表示平均值的标准误差。这个图形过于重复。它显示与图 21.8 相同的数据,并且它使用一致的可视语言,但所有子图使用相同类型的可视化(条形图)。这使得读者难以明白部分(a),(b)和(c)显示完全不同的结果。数据来源:特尔福德和坎宁安(1991)

在制作演示文稿或报告时,目标是为每个不同的分析使用不同类型的可视化。

重复图形集通常是多部分故事的结果,其中每个部分基于相同类型的原始数据。在这些情况下,为每个部分使用相同类型的可视化可能很诱人。但总的来说,这些图形不会引起观众的注意。作为一个例子,让我们分两部分来考虑 Facebook 股票的故事:(i)Facebook 股票价格从 2012 年到 2017 年迅速增长; (ii)价格涨幅超过其他大型科技公司。您可能希望用两个显示随时间变化的股票价格的数据来显示这两个陈述,如图 29.11 所示。然而,虽然图 29.11a 有一个明确的目的并且应该保持原样,但 29.11b 同时重复并且模糊了主要观点。我们并不特别关心 Alphabet,Apple 和 Microsoft 的股票价格的确切时间演变,我们只想强调它比 Facebook 的股价的增长得少。

图 29.11:Facebook 股票价格在五年内的增长以及与其他科技股的比较。 (a)Facebook 股票价格从 2012 年中期的每股约 25 美元上涨至 2017 年中期的每股 150 美元。 (b)其他大型科技公司的价格在同一时期内并未等量上涨。2012 年 6 月 1 日的价格已变为指数 100,以便于比较。该图标记为“丑陋”,因为部分(a)和(b)是重复的。数据来源:雅虎财经

我建议部分(a)保留原样,但用一个显示百分比增长的条形图代替部分(b)(图 29.12 )。现在我们有两个截然不同的图形,每个图形都有一个独特,清晰的要点,并且组合起来很好。 部分(a)允许读者熟悉原始的基础数据,部分(b)突出显示效果的大小,同时删除任何切向信息。

图 29.12:Facebook 股票价格在五年内的增长以及与其他科技股的比较。 (a)Facebook 股价从 2012 年中期的每股约 25 美元/股上涨至 2017 年中期的每股 150 美元,增幅接近 450%。 (b)其他大型科技公司的价格在同一时期内并未等量上涨。价格涨幅介于 90% 至 240% 之间。数据来源:雅虎财经

图 29.12 强调了我在制作一组图形来讲述一个故事时所遵循的一般原则:我从一个尽可能接近显示原始数据的图形开始,在随后的图形中我展示越来越多的派生量。派生量(例如百分比增长,平均值,拟合模型的系数等)可用于总结大型和复杂数据集中的关键趋势。但是,因为它们是派生的,所以它们不那么直观,如果我们在显示原始数据之前显示派生量,我们的观众会发现很难遵循。另一方面,如果我们试图通过显示原始数据来显示所有趋势,我们最终将需要太多和/或重复的图形。

你应该用多少个图形来讲述你的故事?答案取决于出版位置。对于一篇简短的博文或推文,请制作一个图形。对于科学论文,我建议三到六个图形。如果我有一份超过六个图形的科学论文,那么其中一些需要被移入附录或补充材料部分。记录我们收集的所有证据是很好的,但我们不能通过提供过多的几乎相似的图形来消磨我们的观众。在其他情况下,更多的图形可能是合适的。但是,在这些情况下,我们通常会讲述多个故事,或者是一个包含子图的总体故事。例如,如果我被要求进行一个小时的科学演示,我通常打算讲三个不同的故事。同样,一本书或论文将包含不止一个故事,实际上每章或每节可能包含一个故事。在这些情景中,每个不同的故事绘图或子绘图应该展示不超过三到六个图形。在本书中,你会发现我在章节的各个层面都遵循这个原则。每个部分大致是独立的,并通常展示不超过六个图形。

参考

Schimel, J. 2011. Writing Science: How to Write Papers That Get Cited and Proposals That Get Funded. Oxford University Press.

Bateman, S., R. Mandryk, C. Gutwin, A. Genest, D. McDine, and C. Brooks. 2010. “Useful Junk? The Effects of Visual Embellishment on Comprehension and Memorability of Charts.” ACM Conference on Human Factors in Computing Systems, 2573–82. doi:10.1145/1753326.1753716.

Borgo, R., A. Abdul-Rahman, F. Mohamed, P. W. Grant, I. Reppa, and L. Floridi. 2012. “An Empirical Study on Using Visual Embellishments in Visualization.” IEEE Transactions on Visualization and Computer Graphics 18: 2759–68. doi:10.1109/TVCG.2012.197.

Haroz, S., R. Kosara, and S. L. Franconeri. 2015. “ISOTYPE Visualization: Working Memory, Performance, and Engagement with Pictographs.” ACM Conference on Human Factors in Computing Systems, 1191–1200. doi:10.1145/2702123.2702275.

Telford, R. D., and R. B. Cunningham. 1991. “Sex, Sport, and Body-Size Dependency of Hematology in Highly Trained Athletes.” Medicine and Science in Sports and Exercise 23: 788–94.

30 带注解的参考书目

原文: 30 Annotated bibliography

校验:飞龙

自豪地采用谷歌翻译

没有一本书可以涵盖有关主题的所有内容。我鼓励您阅读有关数据可视化的其他书籍,来加深您的理解并培养您制作图形的技术技能。在这里,我提供了一些有限的书籍,我个人觉得这些书很有趣,发人深省或有帮助。 30.1 节中列出的书籍与本书的范围最相似,可以提供我所涵盖的主题的补充或替代观点。30.2 节中列出的书籍讲述了如何使用编程方法和可用软件库进行可视化的重要主题。其余部分列出了其他书籍,这些书籍将扩展您对数据可视化的知识,并帮助您使用视觉和数据进行沟通。

30.1 思考数据和可视化

以下书籍讨论了将数据转换为可视化所需的思考过程和决策。它们作为介绍性书籍,介绍如何选择要制作的可视化以及需要注意的陷阱。

  • Alberto Cairo. “The Truthful Art.” New Riders, 2016.
    

    数据可视化的全方位介绍,特别是对于报告者。本书涵盖了数据可视化的许多重要概念,例如如何可视化分布,趋势,不确定性和地图。在许多章节中,本书还介绍了基本统计原理,解释了总体,样本和置信水平等概念。

  • Stephen Few. “Show Me the Numbers.” Analytics Press, 2012.
    

    一本关于商业专业人士数据可视化的书。它的范围和目标受众与 Nussbaumer Knaflic 的书相似(见下文)。然而,很少有书包含更多材料,更深入地涵盖了许多主题。与此同时,这本书不像 Nussbaumer Knaflic 书那样精心编写和精心制作。

  • Cole Nussbaumer Knaflic. “Storytelling with Data.” John Wiley & Sons, 2015.
    

    一本精心编写并精心制作的书,关于如何将数据转换为视觉效果。这本书的主要受众是制作商业图形的人,这本书非常适合它所涵盖的主题。然而,这本书缺少许多对科学家来说很重要的主题,例如分布,趋势或不确定性的可视化。

30.2 编程书籍

以下书籍是教授数据可视化编程方法的所有书籍。

  • Kieran Healy. “Data Visualization: A Practical Introduction.” Princeton University Press, 2018.
    

    使用 ggplot2 进行数据可视化的介绍。推荐在 Wickham 和 Grolemund 的“R for Data Science”之后阅读(见下文)。

  • Scott Murray. “Interactive Data Visualization for the Web: An Introduction to Designing with D3, 2nd Edition.” O’Reilly Media, 2017.
    

    使用 HTML,CSS,JavaScript 和 SVG,使用 D3 进行交互式在线可视化的简介。

  • Jake VanderPlas. “Python Data Science Handbook: Essential Tools for Working with Data.” O’Reilly Media, 2016.
    

    使用 Python 编程语言进行数据科学的介绍。带有使用 Python 的 Matplotlib 和 Seaborn 进行数据可视化的广泛材料。

  • Hadley Wickham, Garrett Grolemund. “R for Data Science.” O’Reilly Media, 2017.
    

    全面介绍如何使用编程语言 R 进行数据科学。包含有关使用 ggplot2 进行数据可视化的几个章节。

30.3 统计书籍

统计学中的介绍性书籍通常包含有关数据可视化的材料,涵盖散点图,直方图,箱形图和折线图等主题。有许多这样的书籍可以列出。在这里,我只提到一些值得仔细研究的近期补充内容。

  • David M. Diez, Christopher D. Barr, Mine Çetinkaya-Rundel. “OpenIntro Statistics, 3rd Edition.” OpenIntro, Inc., 2015.
    

    开源入门统计教科书。整本书都是免费提供的,LaTeX 文件和用于编写书籍和制作图形的 R 代码也是免费提供的。

  • Susan Holmes, Wolfgang Huber. “Modern Statistics for Modern Biology.” 2018.
    

    一个统计学书籍,强调现代生物学所需的计算工具。整本书免费提供,并提供所有示例的 R 代码。

30.4 历史书籍

本节中的书籍主要是出于历史原因。它们在出版时具有影响力,但现在可以在其他地方或以更现代的形式找到类似的材料。

  • William S. Cleveland. “Visualizing Data.” Hobart Press, 1993.
    

    相同作者的“The Elements of Graphing Data”的配套书(见下文)。这个更具数学性,不谈人类感知。

  • William S. Cleveland. “The Elements of Graphing Data, 2nd Edition.” Hobart Press, 1994.
    

    为统计学家编写的第一本关于信息设计的书籍之一。本书包含许多散点图,折线图,直方图和箱线图的例子,并在数据分析和统计建模的背景下讨论它们。它还推广了克利夫兰点图。

  • Edward R. Tufte. “Envisioning Information.” Graphics Press, 1990.
    

    这本书推广了小型多图的概念。

  • Edward R. Tufte. “The Visual Display of Quantitative Information, 2nd Edition.” Graphics Press, 2001.
    

    本书于 1983 年首次出版,在数据可视化领域具有极大的影响力。它引入了图形垃圾,数据墨水比和迷你图等概念。这本书还展示了第一个斜率图(但没有命名)。然而,该书还包含许多经得起时间考验的建议。特别是,它建议过度简约的绘图设计。

30.5 广泛相关主题的书籍

以下书籍与数据可视化和有效沟通的主题大致相关。

  • Joshua Schimel. “Writing Science.” Oxford University Press, 2011.
    

    通过讲故事来讲授如何以引人入胜的方式撰写科学和其他技术主题。虽然不是主要关于数据可视化的书,但对于需要撰写技术文章和/或提案的人来说,这是一本不可或缺的书籍。

  • Jonathan Schwabish. “Better Presentations.” Columbia University Press, 2016.
    

    简短而翔实的演讲指南。对于经常使用幻灯片进行演讲或演示的人来说必读。

  • Maureen C. Stone. “A Field Guide to Digital Color.” A K Peters, 2003.
    

    计算机如何捕获,处理和再现颜色的综合指南。

  • Colin Ware. “Information Visualization, 3rd Edition.” Morgan Kaufmann, 2012.
    

    一本关于可视化原理的书,专门讨论人类视觉系统如何工作,以及如何感知不同图形模式等主题。本书涵盖了许多不同的可视化场景,包括用户界面和虚拟世界,但它相对较少强调以 2D 图形的形式可视化数据。

技术注解

原文: Technical notes

校验:飞龙

自豪地采用谷歌翻译

整本书是用 R Markdown 编写的,使用 bookdownrmarkdownknitr 软件包。所有图形均使用 ggplot2,并在附加包 cowploteggggforceggrepelggridgessftreemapify 的帮助下制作。颜色处理使用 colorspacecolorblindr 包完成。对于其中许多软件包,需要当前的开发版本来编译本书的所有部分。

这本书的源代码可以在 clauswilke/dataviz 找到。该书还需要一个 R 支持包, dviz.supp,其代码可在 clauswilke/dviz.supp 获取。

该书最后使用以下环境编译:

## R version 3.5.0 (2018-04-23)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
## 
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] nycflights13_1.0.0  gapminder_0.3.0     RColorBrewer_1.1-2 
##  [4] gganimate_1.0.3     ungeviz_0.1.0       emmeans_1.3.1      
##  [7] mgcv_1.8-24         nlme_3.1-137        broom_0.5.1        
## [10] tidybayes_1.0.3     maps_3.3.0          statebins_2.0.0    
## [13] sf_0.7-3            maptools_0.9-4      sp_1.3-1           
## [16] rgeos_0.3-28        ggspatial_1.0.3     geofacet_0.1.9     
## [19] plot3D_1.1.1        magick_1.9          hexbin_1.27.2      
## [22] treemapify_2.5.0    gridExtra_2.3       ggmap_2.7.904      
## [25] ggthemes_4.0.1      ggridges_0.5.1.9000 ggrepel_0.8.0      
## [28] ggforce_0.2.1       patchwork_0.0.1     lubridate_1.7.4    
## [31] forcats_0.3.0       stringr_1.3.1       purrr_0.2.5        
## [34] readr_1.1.1         tidyr_0.8.2         tibble_2.0.1       
## [37] tidyverse_1.2.1     dviz.supp_0.1.0     dplyr_0.8.0.1      
## [40] colorblindr_0.1.0   ggplot2_3.1.1       colorspace_1.4-1   
## [43] cowplot_0.9.99     
## 
## loaded via a namespace (and not attached):
##  [1] rjson_0.2.20              class_7.3-14             
##  [3] rprojroot_1.3-2           estimability_1.3         
##  [5] ggstance_0.3.1            rstudioapi_0.7           
##  [7] farver_1.0.0.9999         ggfittext_0.6.0          
##  [9] svUnit_0.7-12             mvtnorm_1.0-8            
## [11] xml2_1.2.0                knitr_1.20               
## [13] polyclip_1.9-1            jsonlite_1.5             
## [15] png_0.1-7                 compiler_3.5.0           
## [17] httr_1.3.1                backports_1.1.2          
## [19] assertthat_0.2.0          Matrix_1.2-14            
## [21] lazyeval_0.2.1            cli_1.0.1.9000           
## [23] tweenr_1.0.1              prettyunits_1.0.2        
## [25] htmltools_0.3.6           tools_3.5.0              
## [27] misc3d_0.8-4              coda_0.19-2              
## [29] gtable_0.2.0              glue_1.3.0               
## [31] Rcpp_1.0.0                cellranger_1.1.0         
## [33] imguR_1.0.3               xfun_0.3                 
## [35] strapgod_0.0.0.9000       rvest_0.3.2              
## [37] MASS_7.3-50               scales_1.0.0             
## [39] hms_0.4.2                 yaml_2.2.0               
## [41] stringi_1.2.4             e1071_1.7-0              
## [43] spData_0.2.9.4            RgoogleMaps_1.4.3        
## [45] rlang_0.3.1               pkgconfig_2.0.2          
## [47] bitops_1.0-6              geogrid_0.1.1            
## [49] evaluate_0.11             lattice_0.20-35          
## [51] tidyselect_0.2.5          plyr_1.8.4               
## [53] magrittr_1.5              bookdown_0.7             
## [55] R6_2.3.0                  generics_0.0.2           
## [57] DBI_1.0.0                 pillar_1.3.1             
## [59] haven_1.1.2               foreign_0.8-71           
## [61] withr_2.1.2.9000          units_0.6-1              
## [63] modelr_0.1.2              crayon_1.3.4             
## [65] arrayhelpers_1.0-20160527 rmarkdown_1.10           
## [67] progress_1.2.0.9000       jpeg_0.1-8               
## [69] rnaturalearth_0.1.0       grid_3.5.0               
## [71] readxl_1.1.0              digest_0.6.18            
## [73] classInt_0.2-3            xtable_1.8-3             
## [75] munsell_0.5.0

参考

原文: References

Bateman, S., R. Mandryk, C. Gutwin, A. Genest, D. McDine, and C. Brooks. 2010. “Useful Junk? The Effects of Visual Embellishment on Comprehension and Memorability of Charts.” ACM Conference on Human Factors in Computing Systems, 2573–82. doi:10.1145/1753326.1753716.

Becker, R. A., W. S. Cleveland, and M.-J. Shyu. 1996. “The Visual Design and Control of Trellis Display.” Journal of Computational and Graphical Statistics 5: 123–55.

Bergstrom, C. T., and J. West. 2016. “The Principle of Proportional Ink.” http://callingbullshit.org/tools/tools_proportional_ink.html.

Borgo, R., A. Abdul-Rahman, F. Mohamed, P. W. Grant, I. Reppa, and L. Floridi. 2012. “An Empirical Study on Using Visual Embellishments in Visualization.” IEEE Transactions on Visualization and Computer Graphics 18: 2759–68. doi:10.1109/TVCG.2012.197.

Brewer, Cynthia A. 2017. “ColorBrewer 2.0. Color Advice for Cartography.” http://www.ColorBrewer.org.

Carr, D. B., R. J. Littlefield, W. L. Nicholson, and J. S. Littlefield. 1987. “Scatterplot Matrix Techniques for Large N.” J. Am. Stat. Assoc. 82: 424–36.

Clauset, A., C. R. Shalizi, and M. E. J. Newman. 2009. “Power-Law Distributions in Empirical Data.” SIAM Review 51: 661–703.

Cleveland, R. B., W. S. Cleveland, J. E. McRae, and I. Terpenning. 1990. “STL: A Seasonal-Trend Decomposition Procedure Based on Loess.” Journal of Official Statistics 6: 3–73.

Cleveland, W. S. 1979. “Robust Locally Weighted Regression and Smoothing Scatterplots.” Journal of the American Statistical Association 74: 829–36.

———. 1993. “Visualizing Data.” Summit, New Jersey: Hobart Press.

Dua, D., and E. Karra Taniskidou. 2017. “UCI Machine Learning Repository.” University of California, Irvine, School of Information; Computer Sciences. https://archive.ics.uci.edu/ml.

Haroz, S., R. Kosara, and S. Franconeri. 2016. “The Connected Scatterplot for Presenting Paired Time Series.” IEEE Transactions on Visualization and Computer Graphics 22: 2174–86. doi:10.1109/TVCG.2015.2502587.

Haroz, S., R. Kosara, and S. L. Franconeri. 2015. “ISOTYPE Visualization: Working Memory, Performance, and Engagement with Pictographs.” ACM Conference on Human Factors in Computing Systems, 1191–1200. doi:10.1145/2702123.2702275.

Hullman, J., P. Resnick, and E. Adar. 2015. “Hypothetical Outcome Plots Outperform Error Bars and Violin Plots for Inferences About Reliability of Variable Ordering.” PLOS ONE 10: e0142444. doi:10.1371/journal.pone.0142444.

Kale, A., F. Nguyen, M. Kay, and J. Hullman. 2018. “Hypothetical Outcome Plots Help Untrained Observers Judge Trends in Ambiguous Data.” IEEE Transactions on Visualization and Computer Graphics. doi:10.1109/TVCG.2018.2864909.

Kay, M., T. Kola, J. Hullman, and S. Munson. 2016. “When (Ish) Is My Bus? User-centered Visualizations of Uncertainty in Everyday, Mobile Predictive Systems.” CHI Conference on Human Factors in Computing Systems, 5092–5103. doi:10.1145/2858036.2858558.

Marcos, M. L., and J. Echave. 2015. “Too Packed to Change: Side-Chain Packing and Site-Specific Substitution Rates in Protein Evolution.” PeerJ 3: e911.

McDonald, Ian. 2017. “DW-NOMINATE Using Ggjoy.” http://rpubs.com/ianrmcdonald/293304.

Molyneaux, L., S. K. Gilliam, and L. C. Florant. 1947. “Differences in Virginia Death Rates by Color, Sex, Age, and Rural or Urban Residence.” American Sociological Review 12: 525–35.

Okabe, M., and K. Ito. 2008. “Color Universal Design (CUD): How to Make Figures and Presentations That Are Friendly to Colorblind People.” http://jfly.iam.u-tokyo.ac.jp/color/.

Paff, M. L., B. R. Jack, B. L. Smith, J. J. Bull, and C. O. Wilke. 2018. “Combinatorial Approaches to Viral Attenuation.” bioRxiv, 29918. doi:10.1101/299180.

Schimel, J. 2011. Writing Science: How to Write Papers That Get Cited and Proposals That Get Funded. Oxford University Press.

Sidiropoulos, N., S. H. Sohi, T. L. Pedersen, B. T. Porse, O. Winther, N. Rapin, and F. O. Bagger. 2018. “SinaPlot: An Enhanced Chart for Simple and Truthful Representation of Single Observations over Multiple Classes.” J. Comp. Graph. Stat 27: 673–76. doi:10.1080/10618600.2017.1366914.

Stone, M., D. Albers Szafir, and V. Setlur. 2014. “An Engineering Model for Color Difference as a Function of Size.” In 22nd Color and Imaging Conference. Society for Imaging Science and Technology.

Telford, R. D., and R. B. Cunningham. 1991. “Sex, Sport, and Body-Size Dependency of Hematology in Highly Trained Athletes.” Medicine and Science in Sports and Exercise 23: 788–94.

The Economist online. 2011. “Corrosive Corruption.” https://www.economist.com/graphic-detail/2011/12/02/corrosive-corruption.

Tufte, E. R. 1990. Envisioning Information. Cheshire, Connecticut: Graphics Press.

———. 2001. The Visual Display of Quantitative Information. 2nd ed. Cheshire, Connecticut: Graphics Press.

Wehrwein, Austin. 2017. “It Brings Me Ggjoy.” http://austinwehrwein.com/data-visualization/it-brings-me-ggjoy/.

Wickham, H. 2016. ggplot2: Elegant Graphics for Data Analysis. 2nd ed. New York: Springer.

Wikipedia, User:Schutz. 2007. “File:Piecharts.svg.” https://en.wikipedia.org/wiki/File:Piecharts.svg.

Yates, F. 1935. “Complex Experiments.” Supplement to the Journal of the Royal Statistical Society 2: 181–247. doi:10.2307/2983638.

前言

原文:Preface

校验:飞龙

自豪地采用谷歌翻译

如果您是科学家,分析师,顾问或任何其他必须制作技术文档或报告的人,您需要掌握的最重要技能之一就是,以图形形式进行引人注目的数据可视化的能力。图形通常为你的论据带来权重。他们清晰,有吸引力,令人信服。好的和坏的图形之间的差异可能是高影响力或模糊不清的论文,补助或合同的得到或失去,工作面试的好与坏之间的差异。然而,令人惊讶的是,很少有资源可以教您如何制作引人注目的数据可视化。很少有大学提供有关这一主题的课程,也没有很多关于这个主题的书籍。 (当然有些存在。)绘制软件的教程通常关注如何实现特定的视觉效果,而不是解释为什么某些选择是首选而其他选择不是。在您的日常工作中,您只需要知道如何做出好的数据,如果您很幸运,您有一位耐心的顾问会在您撰写第一篇科学论文时教您一些技巧。

在写作的背景下,经验丰富的编辑谈论“耳朵”,听到(在内部,当你阅读一篇散文时)写作是否良好的能力。我认为,在图形和其他可视化方面,我们同样需要“眼睛”,看到一个图形,看看它是否平衡,清晰,引人注目的能力。就像写作的情况一样,可以学习查看图形是否有效的能力。拥有眼睛主要是指,您了解更多简单规则和良好可视化原则,并注意其他人可能没有的细节。

根据我的经验,同样像写作一样,你不会在周末读书时开发眼睛。这是一个终身的过程,今天对你来说过于复杂或过于微妙的概念,可能会在五年后变得更有意义。我可以对自己说,我继续开发我对图形的理解。我经常尝试让自己接触新的方法,并且我注意他人在他们的图形中做出的视觉和设计选择。我也愿意改变主意。我今天可能会认为一个特定的图形很棒,但下个月我可能会找到批评它的理由。所以考虑到这一点,请不要把我说的任何东西当作福音。仔细思考我对某些选择的理由,并决定是否要采用它们。

虽然本书中的材料是按逻辑展示的,但大多数章节都可以独立存在,而且无需阅读书籍封面。您可以随意浏览,选择您当前感兴趣的特定部分,或者涵盖您正在考虑的特定设计选择的部分。事实上,如果你不是一次性阅读本书,而是在更长的时间内逐渐阅读它,尝试在你的图形制作中应用书中的一些概念,并回过头来阅读其他概念或重新阅读您在一段时间后学到的概念,我认为你会从这本书中获得最大的收益。如果您在几个月的时间过后重新阅读它,您可能会发现同一章告诉您不同的事情。

尽管本书中的几乎所有图形都是用 R 和 ggplot2 制作的,但我并不认为这是 R 的书。我在谈论图形制作的一般原则。用于制作图形的软件是随意的。你可以使用任何你想要的绘图软件,来生成我在这里展示的各种图形。但是,ggplot2 和类似的软件包使我使用的许多技巧比其他绘图库简单得多。重要的是,因为这不是 R 的书,所以我不会在本书的任何地方讨论代码或编程技巧。我希望你专注于概念和图形,而不是代码。如果您对如何制作任何数据感到好奇,可以在 GitHub 存储库中查看该书的源代码。

关于绘图软件和图形制作流程图的思考

我有超过二十年的为科学出版物制作图形的经验,并已只做了成千上万的图形。如果在这二十年中有一个常数,那就是图形制作流水线的变化。每隔几年,就会开发一个新的绘图库或者出现一个新的范例,大量的科学家们转而使用热门的新工具包。我使用 gnuplot,Xfig,Mathematica,Matlab,python 中的 matplotlib,R 中的 R 基本库,ggplot2,以及我目前无法记住的其他东西。我目前首选的方法是 R 中的 ggplot2,但我不希望在退休之前我会继续使用它。

软件平台的这种不断变化,是本书不是编程手册,以及为什么我遗漏了所有代码示例的主要原因之一。无论你使用哪种软件,我都希望这本书对你有用,而且即使每个人都从 ggplot2 转移并使用下一个新东西,我希望它仍然有价值。我意识到这个选择对于一些 ggplot2 用户来说可能会令人沮丧,他们想知道我如何制作给定图形。我告诉他们,阅读这本书的源代码,它是可用的。此外,将来我可能会发布一个仅关注代码的补充文档。

多年来我学到的一件事是,自动化是你的朋友。我认为作为数据分析流水线的一部分,图形应该自动生成(也应该是自动化的),它们应该从流水线中出来,准备好发送到打印机,不需要手动后处理。我看到很多学员自动生成他们的图形的粗略草稿,然后他们导入到 Illustrator 中进行修饰。这是坏主意并有几个原因。首先,在您手动编辑图形的那一刻,您的最终图形变得不可再现。第三方无法生成和您所做的完全相同的图形。虽然这可能并不重要,如果您所做的只是更改轴标签的字体,使线条模糊,并且很容易跨越到不太清晰的区域。举个例子,假设你想用更可读的标签手动替换谜之标签。第三方可能无法验证标签更换是否合适。其次,如果您在图形制作流水线中添加了大量手动后处理,那么您将更不愿意进行任何更改或重做您的工作。因此,您可能会忽略协作者或同事做出的合理的更改请求,或者即使您实际重新生成了所有数据,也可能会重复使用旧图形。这些都不是假设的例子。我在实际场景中看到过他们。第三,你自己可能会忘记,你为准备一个给定的图形做了什么,或者你可能无法生成一个新数据的未来图形,与你之前的图形在视觉上完全匹配。

由于上述所有原因,交互式绘图程序是一个坏主意。它们固有地迫使您手动制作您的图形。实际上,最好自动生成一个图形草稿并在 Illustrator 中修饰它,而不是在一些交互式绘图程序中手工制作整个图形。请注意,Excel 也是一个交互式绘图程序,不建议用于图形制作(或数据分析)。

数据可视化图书中的一个关键成分,是所提出的可视化的可行性。很高兴能够发明一些优雅的可视化新方法,但是如果没有人能够使用这种可视化轻松生成数据,那么就没有多大用处。例如,当 Tufte 首次提出迷你图时,没有人能够轻松制作它们。虽然我们需要有远见的人通过可能的方式来推动世界的发展,但我认为这本书是切实可行的,并直接适用于为其出版物制作图形的职业数据科学家。因此,我在后续章节中提出的可视化,可以通过几行 R 代码,通过 和随时可用的扩展包生成。事实上,本书中的几乎每一个图形,除了第 262728 章中的一些图形外,都是完全自动生成的。

致谢

如果没有 RStudio 团队将 R Universe 变成一流的出版平台所做的出色工作,这个项目是不可能实现的。特别是,我要感谢 Hadley Wickham 创建 ggplot2,这是用于制作本书所有数据的绘图软件。我还要感谢 Yihui Xie 创建 R Markdown 以及编写 knitrbookdown 软件包。如果这些工具没有准备就绪,我认为我不会启动这个项目。编写 R Markdown 文件很有趣,并且很容易收集材料并获得动力。特别感谢 Achim Zeileis 和 Reto Stauffer 的 colorspace,Thomas Lin Pedersen 的 ggforcegganimate,Kamil Slowikowski 的 ggrepel,Edzer Pebesma 的 sf 和 Claire McWhite 在 colorspacecolorblindr 上的工作,模拟 R 装配图中的色觉缺陷。

有几个人对本书的草稿版本提供了有用的反馈。最重要的是,O'Reilly 的编辑 Mike Loukides 和 Steve Haroz 都阅读并评论了每一章。我还收到了 Carl Bergstrom,Jessica Hullman,Matthew Kay,Edzer Pebesma,Tristan Mahr,Jon Schwabish 和 Hadley Wickham 的有益评论。 Len Kiefer 的博客和 Kieran Healy 的书和博客文章为图形制作和数据集提供了许多灵感。许多人指出了小问题或错别字,包括 Thiago Arrais,Malcolm Barrett,Jessica Burnett,Jon Calder,AntônioPedroCamargo,Daren Card,Kim Cressman,Akos Hajdu,Andrew Kinsman,Will Koehrsen,Alex Lalejini,John Leadley,Katrin Leinweber,Mikel Madina,Claire McWhite,S'busiso Mkhondwane,Jose Nazario,Steve Putman,MaëlleSalmon,Christian Schudoma,James Scott-Brown,Enrico Spinielli,Wouter van der Bijl 和 Ron Yurko。

我还要更广泛地感谢 tidyverse 和 R 社区的所有其他贡献者。确实存在可用于任何可视化挑战的 R 包。所有这些包都是由数千名数据科学家和统计学家组成的广泛社区开发的,其中许多都以某种形式为本书的制作做出了贡献。

1 简介

原文: 1 Introduction

校验:飞龙

自豪地采用谷歌翻译

数据可视化是部分艺术和部分科学。挑战在于让艺术变得正确而不会让科学出错,反之亦然。首先,数据可视化必须准确地传达数据。它绝不能误导或扭曲。如果一个数字是另一个数字的两倍,但在可视化中它们看起来大致相同,那么可视化就是错误的。同时,数据可视化应该是美学上令人愉悦的。良好的视觉呈现倾向于增强可视化的信息。如果图形包含不和谐的颜色,不平衡的视觉元素或其他分散注意力的特征,那么观察者将发现更难以检查图形并正确解释它。

根据我的经验,科学家经常(虽然并非总是如此!)知道如何可视化数据而不会产生严重的误导。然而,它们可能没有良好的视觉美感,并且它们可能无意中做出视觉选择,从而减损了他们想要的信息。另一方面,设计师可能制作看起来漂亮,但可能简单和松散地使用数据的可视化。我的目标是为两个群体提供有用的信息。

本书试图涵盖可视化出版物,报告或演示文稿数据所需的关键原则,方法和概念。因为数据可视化是一个广阔的领域,并且在其最广泛的定义中可能包括各种主题,如技术原理图,3D 动画和用户界面,我必须限制本书的范围。我特别报道了在印刷品,在线或幻灯片中呈现的静态可视化的情况。除了可视化不确定性章节中的一个简短部分外,本书不包括交互式视觉效果或电影。因此,在本书中,我将互换使用“可视化”和“图形”这两个词。本书也没有提供如何用现有的可视化软件或编程库制作图形的任何指导。本书末尾的带标注的参考书目,包含了涵盖这些主题的适当文本的引用。

这本书分为三个部分。第一个“从数据到可视化”描述了不同类型的绘图和图形,例如条形图,散点图或饼图。它的主要重点是可视化科学。在这一部分中,我不是试图提供所有可想象的可视化方法的百科全书,而是讨论一组核心的视觉效果,您可能会在出版物和/或您自己的工作中遇到这些视觉效果。在组织这一部分时,我试图通过它们传达的消息类型,而不是可视化数据的类型,来对可视化进行分组。统计文本通常按数据类型描述数据分析和可视化,按数量和变量类型组织材料(一个连续变量,一个离散变量,两个连续变量,一个连续变量和一个离散变量等)。我相信只有统计学家才会觉得这个组织很有帮助。大多数人都会根据消息来思考,比如某事物有多大,它是如何由部分组成的,它与其他事物的关系等等。

第二部分“图形设计原理”讨论了制作数据可视化时出现的各种设计问题。它的主要但不是唯一的重点,是数据可视化的美学方面。一旦我们选择了适合我们数据集的正确类型的绘图或图形,我们就必须对视觉元素做出美学选择,例如颜色,符号和字体大小。这些选择可以影响可视化的清晰程度和外观的优雅程度。第二部分的章节讨论了在实际应用中反复出现的最常见问题。

第三部分“杂项主题”涵盖了一些不符合前两部分的遗留问题。它讨论了常用于存储图像和绘图的文件格式,它提供了有关可视化软件选择的想法,并解释了如何将单个图形放入更大文档的上下文中。

丑陋,不好的和错误的图形

在本书中,我经常展示相同图形的不同版本,一些作为如何制作良好可视化的示例,一些作为反面示例。为了提供一个简单的视觉指南,说明哪些例子应该被模仿,哪些应该被避免,我明确地将有问题的图形标记为“丑陋”,“不良”或“错误”(图 1.1):

  • 丑陋 - 有审美问题的图形,但其他方面很清楚,信息量很大。
  • 不良 - 与感知有关的问题;它可能不清楚,混乱,过于复杂或误导性。
  • 错误 - 有数学问题的图形;这是客观上不正确的。

图 1.1:丑陋,不良和错误图形的例子。

(a)显示三个值(A = 3B = 5C = 4)的条形图。这是一个合理的可视化,没有重大缺陷。

(b)(a)的丑陋版本。虽然绘图在技术上是正确的,但它在美学上并不令人愉悦。颜色太亮而且没用。背景网格太突出了。使用三种不同尺寸的三种不同字体显示文本。

(c)(a)的不良版本。每个条都显示有自己的y轴刻度。由于刻度不对齐,这使得图形有误导性。人们可以很容易地得到三个值比实际值更接近的印象。

(d)(a)部分的错误版本。如果没有明确的y轴刻度,则无法确定由条形表示的数字。条形似乎长度为 1,3 和 2,即使显示的值为 3,5 和 4。

我没有明确标明好的图形。任何未明确标记为有缺陷的图形都应假定为至少可以接受。这是一个信息丰富的图形,看起来很吸引人,并且可以按原样打印。请注意,在好的图形中,质量仍然存在差异,一些好的图形会比其他图形更好。

我通常会提供具体评级的理由,但有些是品味问题。一般来说,“丑陋”评级比“不良”或“错误”评级更主观。而且,“丑陋”和“不良”之间的界限有点模糊。有时糟糕的设计选择会干扰人类的感知,以至于“不良”评级比“丑陋”评级更合适。无论如何,我鼓励你开发自己的眼睛并批判性地评估我的选择。

2 可视化数据:将数据映射到美学上

原文: 2 Visualizing data: Mapping data onto aesthetics

校验:飞龙

自豪地采用谷歌翻译

每当我们可视化数据时,我们都会采用数据值并将它们以系统和逻辑的方式转换为构成最终图形的视觉元素。尽管存在许多不同类型的数据可视化,并且乍一看散点图,饼图和热图似乎没有太多共同点,但所有这些可视化都可以用一种通用语言来描述,它捕获了数据如何变成纸上的墨水斑点,或屏幕上的彩色像素。主要的见解如下:所有数据可视化将数据值映射到所得图形的可量化特征。我们将这些特征称为美学。

2.1 美学和数据类型

美学描述了给定图形元素的每个方面。图 2.1 中提供了一些示例。每个图形元素的关键成分当然是它的位置,描述了元素的位置。在标准 2D 图形中,我们通过xy值来描述位置,但是其他坐标系和一维或三维可视化也是可能的。接下来,所有图形元素都具有形状,尺寸和颜色。即使我们正在制作黑白绘图,图形元素也需要有可见的颜色,例如,如果背景为白色,则为黑色;如果背景为黑色,则为白色。最后,我们使用线条来可视化数据,这些线条可能具有不同的宽度或点划线图案。除了图 2.1 中显示的示例之外,我们在数据可视化中可能会遇到许多其他美学。例如,如果我们想要显示文本,我们可能必须指定字体系列,字体界面和字体大小,如果图形对象重叠,我们可能必须指定它们是否部分透明。

图 2.1:数据可视化中常用的美学:位置,形状,大小,颜色,线宽,线型。这些美学中的一些可以表示连续和离散数据(位置,大小,线宽,颜色),而其他美学通常仅表示离散数据(形状,线型)。

所有美学都属于两类:可以代表连续数据的那些和不能代表连续数据的那些。连续数据值是存在任意精细中间体的值。例如,持续时间是连续值。在任何两个持续时间(例如 50 秒和 51 秒)之间,存在任意多个中间体,例如 50.5 秒,50.51 秒,50.50001 秒等。相比之下,房间中的人数是离散值。一个房间可以容纳 5 人或 6 人,但不能容纳 5.5 人。对于图 2.1 中的示例,位置,大小,颜色和线宽可以表示连续数据,但形状和线型通常只能表示离散数据。

接下来,我们将考虑可能要在可视化中表示的数据类型。您可能会将数据视为数字,但数字只是我们可能遇到的几种数据类型中的两种。除连续和离散数值外,数据还可以以离散类别的形式,以日期或时间的形式出现,也可以作为文本(表 2.1)。当数据是数字时我们也称它为定量的,当它是类别时我们称它为定性的。保存定性数据的变量是因子,不同的类别称为水平。最常见的一个因子的水平是没有顺序的(如表 2.1 中的“狗”,“猫”,“鱼”的例子),但是当存在内在因素时也可以在水平之间的对因子排序(如表 2.1 中的“好”,“一般”,“差”的例子)。

表 2.1:典型数据可视化方案中遇到的变量类型。

变量的类型 例子 适当的刻度 描述
定量/数值连续 1.3, 5.7, 83, 1.5x10^(-2) 连续 任意数值。这些可以是整数,有理数或实数。
定量/数值离散 1, 2, 3, 4 离散 离散单位中的数字。这些最常见但不一定是整数。例如,如果给定数据集中不存在中间值,则数字0.5, 1.0, 1.5也可视为离散。
定性/无序类别 狗,猫,鱼 离散 没有顺序的类别。这些是离散且唯一的类别,没有固有的顺序。这些变量也称为因子。
定性/有序类别 好,一般,差 离散 带顺序的类别。这些是具有顺序的离散且唯一的类别。例如,“一般”总是介于“好”和“差”之间。这些变量也称为有序因子。
日期或时间 2018 年 1 月 5 日,上午 8:03 连续或离散 特定日期和/或时间。也可能是通用日期,例如 7 月 4 日或 12 月 25 日(没有年份)。
文本 The quick brown fox jumps over the lazy dog. 无或离散 自由格式的文本。如果需要,可以视为类别。

要查看这些不同类型数据的具体示例,请查看表 2.2 。它显示了数据集的前几行,它们提供了美国四个地点的日平均气温(30 年窗口中的平均日常温度)。此表包含五个变量:月,日,位置,站点 ID 和温度(以华氏度为单位)。月是有序因子,日是离散数值,位置是无序因子,站点 ID 同样是无序因子,温度是连续数值。

表 2.2:数据集的前 12 行,列出了四个气象站的日平均气温。 数据来源:NOAA。

地点 站点 ID 温度
Jan 1 Chicago USW00014819 25.6
Jan 1 San Diego USW00093107 55.2
Jan 1 Houston USW00012918 53.9
Jan 1 Death Valley USC00042319 51.0
Jan 2 Chicago USW00014819 25.5
Jan 2 San Diego USW00093107 55.3
Jan 2 Houston USW00012918 53.8
Jan 2 Death Valley USC00042319 51.2
Jan 3 Chicago USW00014819 25.3
Jan 3 San Diego USW00093107 55.3
Jan 3 Death Valley USC00042319 51.3
Jan 3 Houston USW00012918 53.8

2.2 将地图数据值缩放到美学上

为了将数据值映射到美学上,我们需要指定哪些数据值对应于哪些特定的美学值。例如,如果我们的图形具有 x 轴,那么我们需要指定哪些数据值沿着该轴落在特定位置上。同样,我们可能需要指定哪些数据值由特定形状或颜色表示。数据值和美学值之间的映射是通过刻度创建的。刻度定义了数据和美学之间的唯一映射(图 2.2)。重要的是,刻度必须是一对一的,这样对于每个特定的数据值,只有一个美学值,反之亦然。如果刻度不是一对一的,那么数据可视化就变得模棱两可。

图 2.2:将一串数据值缩放到美学。这里,数字 1 到 4 已被映射到位置,形状和颜色刻度。对于每个刻度,每个数字对应于唯一的位置,形状或颜色,反之亦然。

让我们把事情付诸实践。我们可以采用表 2.2 中显示的数据集,将温度映射到 y 轴上,一年中的日期映射到 x 轴上,位置映射到颜色上,并可视化这些美学与实线。结果是一个标准线图,显示了四个位置随着日期的变化的平均气温(图 2.3)。

图 2.3:美国四个选定位置的日平均气温,温度映射到 y 轴,一年中的某一天映射到 x 轴,以及位置到线的颜色。数据来源:NOAA。

图 2.3 是一个相当标准的温度曲线可视化,可能是大多数数据科学家首先直观选择的可视化。但是,由我们决定哪些变量映射到哪个刻度。例如,不将温度映射到 y 轴上,不将位置映射到颜色上,我们可以做相反的事情。因为现在感兴趣的关键变量(温度)显示为颜色,我们需要显示足够大的颜色区域,以便颜色传达有用信息(Stone,Albers Szafir 和 Setlur 2014)。因此,对于这种可视化,我选择了正方形而不是线条,每个月和位置都有一个,我用每个月的平均气温对它们着色(图 2.4)。

图 2.4:美国四个地点的每月正常平均温度数据来源:NOAA

我想强调的是,图 2.4 使用两个位置刻度(沿着 x 轴的月份和沿着 y 轴的站点),但两者都不是连续刻度。月份是一个有 12 个水平的有序因子,位置是一个有四个水平的无序因子。因此,两个位置刻度都是离散的。对于离散位置刻度,我们通常将因子的不同水平沿轴线以相等的间距放置。如果因子是有序的(就像这里的月份一样),则需要按适当的顺序放置水平。如果因子是无序的(这里是站点的情况),那么顺序是任意的,我们可以选择我们想要的任何顺序。我排列了整体最冷(芝加哥)到整体最热(死亡谷)的地点,来产生令人愉快的惊人色彩。但是,我可以选择任何其他顺序,这个图形同样有效。

图 2.3 和 2.4 总共使用了三个刻度,两个位置刻度和一个颜色刻度。这是基本可视化的典型刻度数,但我们可以同时使用三个以上的刻度。图 2.5 使用五个刻度,两个位置刻度,一个颜色,一个尺寸和一个形状刻度,所有刻度表示来自数据集的不同变量。

图 2.5:32 辆汽车(型号为 1973-74)的燃油效率与排量。该图使用五个单独的刻度来表示数据:

(i) x 轴(排量);

(ii) y 轴(燃油效率);

(iii) 数据点的颜色(功率);

(iv) 数据点的大小(重量);

(v) 数据点的形状(缸数)。

显示的五个变量中的四个(位移,燃料效率,功率和重量)是数值连续的。剩余的一个(缸数)可以被认为是数值离散的或定性的。数据来源:Motor Trend,1974。

参考

Stone, M., D. Albers Szafir, and V. Setlur. 2014. “An Engineering Model for Color Difference as a Function of Size.” In 22nd Color and Imaging Conference. Society for Imaging Science and Technology.

3 坐标系和轴

原文: 3 Coordinate systems and axes

校验:飞龙

自豪地采用谷歌翻译

要进行任何类型的数据可视化,我们需要定义位置刻度,来确定不同数据值的在图形中的位置。如果不将不同数据点放置在不同位置,我们就无法可视化数据,即使我们只是沿着一条线将它们彼此相邻排列。对于常规的 2d 可视化,需要两个数字来唯一地指定一个点,因此我们需要两个位置刻度。这两个刻度通常但不一定是图的 xy 轴。我们还必须指定这些刻度的相对几何排列。通常, x 轴水平延伸,y 轴垂直,但我们可以选择其他排列。例如,我们可以使 y 轴相对于 x 轴成锐角,或者我们可以让一个轴成圆形而另一个轴径向延伸。一组位置刻度及其相对几何排列的组合称为坐标系。

3.1 笛卡尔坐标

最广泛使用的数据可视化坐标系是 2d 笛卡尔坐标系,其中每个位置由 xy 值唯一指定。 xy 轴彼此正交,数据值沿两个轴均等间隔放置(图 3.1 )。两个轴是连续的位置刻度,它们可以表示正实数和负实数。要完全指定坐标系,我们需要指定每个轴覆盖的数字范围。在图 3.1 中, x 轴从 -2.2 到 3.2,y 轴从 -2.2 到 2.2。这些轴边界之间的任何数据值都放置在图中的相应位置。轴边界之外的任何数据值都将被丢弃。

图 3.1:标准笛卡尔坐标系。横轴通常称为 x,纵轴为 y 。两个轴形成等间距的网格。这里, xy 网格均以 1 为单位分开。点(2, 1)位于原点(0, 0)右侧的两个 x 单位和上方的一个 y 单位。点(-1, -1)位于原点左侧的一个 x 单位和位于下方的一个 y 单位。

但是,数据的值通常不仅仅是数字。他们有单位。例如,如果我们测量温度,则可以以摄氏度或华氏度为单位。类似地,如果我们测量距离,则可以以公里或英里为单位,如果我们测量持续时间,则可以以分钟,小时或天为单位。在笛卡尔坐标系中,沿轴的网格线之间的间距对应于这些数据单元中的离散步长。例如,在温度范围内,我们可能每 10 华氏度有一个网格线,而在距离范围内,我们可能每 5 公里有一个网格线。

笛卡尔坐标系可以具有代表两个不同单位的两个轴。每当我们将两种不同类型的变量映射到 xy 时,就会出现这种情况。例如,在图 2.3 中,我们绘制了温度与一年中的天数。图 2.3 的 y 轴以华氏度为单位测量,网格线均为 20 度,x 轴以月为单位测量,网格线在每三个月的第一个月。无论何时以不同的单位测量两个轴,我们都可以相对于另一个轴拉伸或压缩,并保持数据的有效可视化(图 3.2 )。哪个版本更合适,取决于我们想传达的故事。高而窄的图形强调沿 y 轴的变化,而短而宽的图形则相反。理想情况下,我们希望选择一个宽高比,以确保任何位置上的重要差异都是显而易见的。

图 3.2:德克萨斯州休斯顿的日平均温度。温度映射到 y 轴以及一年中的某一天映射到 x 轴。部分(a),(b)和(c)以不同的纵横比展示相同的图。所有三个部分都是温度数据的有效可视化。数据来源:NOAA。

另一方面,如果 xy 轴以相同的单位测量,那么两个轴的网格间距应该相等,这样沿着 xy 轴的相同的距离,对应于相同数量的数据单位。例如,我们可以绘制一年中每天的休斯顿,德克萨斯州与加利福尼亚州圣地亚哥的温度(图 3.3a)。由于沿两个轴绘制相同的定量值,我们需要确保网格线形成完美的正方形,如图 3.3 中的情况。

图 3.3:休斯顿,TX 的日平均温度,相对于加利福尼亚州圣地亚哥的相应平均温度绘制。突出显示 1 月,4 月,7 月和 10 月的第一天,来提供时间参考。 (a)气温以华氏度表示。 (b)温度以摄氏度表示。数据来源:NOAA。

您可能想知道如果更改数据单位会发生什么。毕竟,单位是任意的,你的偏好可能与其他人不同。单位变化是线性变换,我们在所有数据值中添加或减去一个数字和/或将所有数据值与另一个数字相乘。幸运的是,笛卡尔坐标系在这种线性变换下是不变的。因此,您可以更改数据的单位,只要相应地更改轴,所得图形就不会改变。例如,比较图 3.3a 和 3.3b。两者都显示相同的数据,但在部分(a)中温度单位是​​华氏度,而在部分(b)中它们是摄氏度。即使网格线位于不同的位置并且沿轴的数字不同,两个数据可视化看起来完全相同。

3.2 非线性轴

在笛卡尔坐标系中,沿轴的网格线在数据单元和所得可视化中均匀间隔。我们将这些坐标系中的位置刻度称为线性的。虽然线性刻度通常提供数据的准确表示,但是存在非线性刻度更佳的情况。在非线性刻度中,数据单元中的均匀间距对应于可视化中的不均匀间隔,或者相反地,甚至可视化中的间距对应于数据单元中的不均匀间隔。

最常用的非线性刻度是对数(log)刻度。对数刻度在乘法中是线性的,因此刻度上的单位步长相当于乘上固定值。要创建对数刻度,我们需要对数据值进行对数转换,同时对沿轴网格线显示的数字进行求幂。该过程在图 3.4 中进行了演示,其中显示了在线性和对数刻度上的数字 1, 3.16, 10, 31.6 和 100。数字 3.16 和 31.6 似乎是一个奇怪的选择,但选择它们是因为它们正好在 1 到 10 之间,在对数刻度上在 10 到 100 之间。我们可以通过观察 \(10 ^ {0.5} = \sqrt{10} \sim 3.16\) 和等价的 $3.16 \times 3.16 \sim 10 $ 来看到这一点。类似地,\(10^{1.5} = 10 \times 10^{0.5} \sim 31.6\)

图 3.4:线性和对数刻度之间的关系。点对应于数据值 1, 3.16, 10, 31.6, 100,它们是对数刻度上的均匀间隔数。我们可以在线性刻度上显示这些数据点,我们可以对它们进行对数转换然后以线性刻度显示,或者我们可以在对数刻度上显示它们。重要的是,对数刻度的正确轴标题是显示的变量的名称,而不是该变量的对数。

在数学上,在线性刻度上绘制对数变换数据,或在对数刻度上绘制原始数据之间没有区别(图 3.4 )。唯一的区别在于单个轴刻度线和整个轴的标签。在大多数情况下,对数刻度的标签是优选的,因为它对读者施加较少的精神负担,来解释显示为轴刻度线标签的数字。关于对数基数的混淆风险也较小。当使用对数转换的数据时,我们可能会对数据是使用自然对数还是使用基数 10 的对数感到困惑。不常见的标签是模棱两可的,例如: log(x),它根本没有指定基数。我建议您在使用对数转换数据时始终标明基数。绘制对数转换的数据时,请始终在轴标签中指定基数。

因为对数刻度上的乘法看起来像线性刻度上的加法,所以对数刻度是通过乘法或除法获得的任何数据的自然选择。特别是,比值通常应以对数刻度显示。例如,我已经记录了德克萨斯州每个县的居民人数,并将其除以德克萨斯州所有县的居民人数中位数。得到的比值是可以大于或小于 1 的数字。恰好为 1 的比值意味着相应的县具有居民的中位数。当以对数刻度可视化这些比值时,我们可以清楚地看到,德克萨斯州的人口数量对称地分布在中位数附近,并且人口最多的县的人数比中位数多 100 多倍,而人口最少的县则少 100 多倍(图 3.5 )。相比之下,对于相同的数据,线性刻度模糊了中等人口数量的县与人口数量小于中位数的县之间的差异(图 3.6)。

图 3.5:德克萨斯州的人口数量与其中值的关系。选择县按名称突出显示。虚线表示比值为 1,对应于具有中值人口数的县。人口最多的县的居民人数比中位数县大约多 100 倍,人口最少的县居民人数比中位数县少 100 倍。数据来源:2010 年美国十年普查。

图 3.6:德克萨斯州的人口规模与其中值的关系。通过在线性刻度上显示比值,我们过分强调了大于 1 的比值,并且模糊了小于 1 的比值。作为一般规则,比值不应以线性刻度显示。数据来源:2010 年美国十年普查。

在对数刻度上,值 1 是自然中点,类似于线性刻度上的值 0。我们可以认为大于 1 的值表示乘法而小于 1 的值表示除法。例如,我们可以写10 = 1 x 100.1 = 1 / 10。另一方面,值 0 永远不会出现在对数刻度上。它远离 1。它的一个方法是考虑log0 = -inf。或者,考虑从 1 到 0,它需要除以无限多个有限值(例如,1/10/10/10/10/10/10 ... = 0或者一个除以无穷大(即1 / inf = 0)。

当数据集包含规模非常不同的数量时,经常使用对数刻度。对于图 3.5 和 3.6 中显示的德克萨斯州,人口最多的县(Harris)在 2010 年美国人口普查中有 4,092,459 名居民,而人口最少的县(Loving)有 82 人。所以即使我们没有将人口数量除以中位数来将他们变成比值,对数刻度也是合适的。但如果有一个拥有 0 居民的县,我们会怎么做?这个县无法以对数刻度显示,因为它位于负无穷大。在这种情况下,建议有时使用平方根刻度,它使用平方根变换而不是对数变换(图 3.7 )。就像对数刻度一样,平方根刻度将较大的数字压缩成较小的范围,但与对数刻度不同,它允许存在 0。

图 3.7:线性和平方根刻度之间的关系。点对应于数据值 0, 1, 4, 9, 16, 25, 36, 49,它们是平方根刻度上的等间隔数,因为它们是从 0 到 7 的整数的平方。我们可以以线性刻度显示这些数据点,我们可以对它们进行平方根变换然后以线性刻度显示,或者我们可以在平方根刻度上显示它们。

我看到了平方根刻度的两个问题。首先,虽然在线性刻度上,一个单位步长对应于常数值的加或减,并且在对数刻度上它对应于常数值的乘或除,平方根刻度不存在这样的规则。平方根刻度上的单位步长的含义取决于我们开始时的刻度值。其次,目前还不清楚如何最好地将轴刻度线放在平方根刻度上。为了获得等间隔的刻度,我们必须将它们放置在正方形上,但是在例如位置 0, 4, 25, 49, 81(每个偶数的平方)处的轴刻度线将非常不直观。或者,我们可以以线性间隔(10, 20, 30 等)放置它们,但这会导致刻度的小端附近的轴刻度线太少,或在大端附近太多。在图 3.7 中,我将轴刻度线放在平方根刻度上的位置 0, 1, 5, 10, 20, 30, 40 和 50 处。这些值是任意的,但可以合理覆盖数据范围。

尽管平方根刻度存在这些问题,但它们是有效的位置刻度,我并不打算否认它们具有适当应用的可能性。例如,就像对数刻度是比值的自然刻度一样,人们可以争辩说,平方根刻度是平方数据的自然刻度。数据是自然平方的一种情况是在地理面积的背景下。如果我们以平方根刻度显示地理面积,我们将突出显示区域从东到西或从北到南的线性范围。例如,如果我们想知道开车穿过一个地区可能需要多长时间,这些范围可能是相关的。图 3.8 以线性和平方根刻度显示美国东北部的州的面积。即使这些州的面积完全不同(图 3.8 a),穿过每个州所需的时间将更接近于平方根刻度上的数字(图 3.8b)而不是线性刻度上的数字(图 3.8a)。

图 3.8:美国东北部各州的面积。(a)以线性刻度显示的面积。 (b)以平方根刻度显示的面积。数据来源:Google。

3.3 带曲线轴的坐标系

到目前为止,我们遇到的所有坐标系都使用了两个相互成直角的直轴,即使这些轴本身也建立了从数据值到位置的非线性映射。然而,还有其他坐标系,其中轴本身是弯曲的。特别是,在极坐标系中,我们通过角度和到原点的径向距离来指定位置,因此角度轴是圆形的(图 3.9)。

图 3.9:笛卡尔坐标和极坐标之间的关系。 (a)笛卡尔坐标系中显示的三个数据点。 (b)极坐标系中显示的相同三个数据点。我们从(a)部分取 x 坐标并将它们用作角坐标,并将来自(a)部分的 y 坐标用作径向坐标。在该示例中,圆轴从 0 到 4,因此 x = 0 和 x = 4 是该坐标系中的相同位置。

极坐标对于周期性数据可能是有用的,使得刻度一端的数据值可以从逻辑上连接到另一端的数据值。例如,考虑一年中的天数。 12 月 31 日是一年中的最后一天,但它也是一年中第一天的前一天。如果我们想要显示一年中某些数量的变化,那么使用极坐标系和指定为日期的角度坐标是合适的。让我们将这个概念应用于图 2.3 的平均温度。因为平均温度是与任何特定年份无关的平均温度,12 月 31 日可以被认为比 1 月 1 日晚 366 天(平均温度包括 2 月 29 日)以及早一天。通过在极坐标系中绘制平均温度,我们强调它们具有的这种周期特性(图 3.10)。与图 2.3 相比,极坐标版本突出了死亡谷,休斯顿和圣地亚哥从秋末到早春的温度。在笛卡尔坐标系中,这个事实是模糊的,因为 12 月下旬和 1 月初的温度值显示在图的不同部分,因此不形成单个视觉单元。

图 3.10:美国四个选定位置的日平均温度,以极坐标显示。到中心点的径向距离表示平均温度(华氏),一年中的日期从 1 月 1 日开始在六点钟位置逆时针排列。

我们遇到弯曲线轴的第二种情况是地理空间数据,即地图。地球上的位置由其经度和纬度指定。但由于地球是一个球体,绘制纬度和经度作为笛卡尔轴是误导和不推荐的(图 3.11)。相反,我们使用各种类型的非线性投影,试图最大限度地减少错误,并且相对于地球上真实形状的线条,在保留面积或角度之间取得不同的平衡(图 3.11)。

图 3.11:世界地图,以四种不同的投影显示。笛卡尔经纬度系统将每个位置的经度和纬度映射到常规笛卡尔坐标系。该映射导致面积和角度相对于其在 3D 球体上的真实值的实质性失真。中断的 Goode homolosine 投影完美地代表了真实的表面面积,代价是将一些陆块分成单独的部分,最着名的是格陵兰岛和南极洲。罗宾逊投影和 Winkel tripel 投影都在角度和面积扭曲之间取得平衡,它们通常用于整个地球的地图。

4 颜色刻度

原文: 4 Color scales

校验:飞龙

自豪地采用谷歌翻译

数据可视化中的颜色有三个基本用例:(i)我们可以使用颜色来区分数据组; (ii)我们可以用颜色来表示数据值; (iii)我们可以使用颜色突出显示。我们使用的颜色类型以及我们使用它们的方式在这三种情况下完全不同。

4.1 作为区分的工具的颜色

我们经常使用颜色作为区分不具有内在顺序的离散项目或分组的手段,例如地图上的不同国家或某个产品的不同制造商。在这种情况下,我们使用定性颜色刻度。这样的刻度包含一组有限的特定颜色,选择这些颜色是为了看起来彼此明显不同,同时也彼此相同。第二个条件要求相对于其他颜色,不应该突出任何一种颜色。并且,颜色不应该产生顺序的印象,就像持续变亮的一系列颜色的情况一样。这些颜色会在被着色的物品之间产生明显的顺序,根据定义,它们没有顺序。

许多合适的定性颜色刻度很容易获得。图 4.1 显示了三个代表性的例子。特别是,ColorBrewer 项目提供了很好的定性颜色刻度选择,包括相当浅和相当深的颜色(Brewer 2017)。

图 4.1:定性颜色刻度示例。 Okabe Ito 刻度是本书(Okabe 和 Ito 2008)中使用的默认刻度。 ColorBrewer Dark2 刻度由 ColorBrewer 项目(Brewer 2017)提供。 ggplot2 色调刻度是广泛使用的绘图软件 ggplot2 中的默认定性刻度。

作为我们如何使用定性颜色刻度的一个例子,请考虑图 4.2 。它显示了美国各州 2000 年至 2010 年的人口增长率。我按照人口增长的顺序排列了各州,我按地理区域对它们进行了着色。这种着色突出表明,同一地区的国家经历了类似的人口增长。特别是,西部和南部各州人口增长最多,而中西部和东北部各州增长较少。

图 4.2:2000 年至 2010 年美国的人口增长。西部和南部的州增长最大,而中西部和东北部的州增长小得多,甚至在密歇根州也有所下降。数据来源:美国人口普查局

4.2 代表数据值的颜色

颜色也可用于表示数据值,例如收入,温度或速度。在这种情况下,我们使用顺序颜色刻度。这样的刻度包含一系列颜色,其清楚地指示(i)哪些值大于或小于哪些值,以及(ii)两个特定值彼此有多远。第二点意味着需要感知颜色刻度在其整个范围内均匀变化。

顺序刻度可以基于单个色调(例如,从深蓝色到浅蓝色)或基于多个色调(例如,从深红色到浅黄色)(图 4.3 )。多色调刻度倾向于遵循自然界中可见的颜色渐变,例如深红色,绿色或蓝色至浅黄色,或深紫色至浅绿色。相反,例如深黄色至浅蓝色,看起来不自然,并没有生成有用的顺序刻度。

图 4.3:连续颜色刻度示例。 ColorBrewer Blues 刻度是一种单色刻度,从深蓝到浅蓝不等。 Heat 和 Viridis 刻度是多色调刻度,分别从深红色到浅黄色,从深蓝色到绿色到浅黄色。

当我们想要显示数据值如何跨地理区域变化时,将数据值表示为颜色特别有用。在这种情况下,我们可以绘制地理区域的地图,并按照数据值对它们进行着色。这种地图称为等值线。图 4.4 显示了一个示例,其中我将德克萨斯州每个县的年收入中位数映射到这些县的地图上。

图 4.4:德克萨斯州的年收入中位数。德克萨斯州主要城市地区的收入中位数最高,特别是在休斯顿和达拉斯附近。西德克萨斯州的 Loving 县没有收入中位数估计值,因此该县显示为灰色。数据来源:2015 年的美国五年社区调查

在某些情况下,我们需要将数据值的偏差可视化为相对于中性点的两个方向之一。一个简单的例子是包含正数和负数的数据集。我们可能想要使用不同颜色来显示它们,这样就可以立即看出一个值是正还是负,以及它在任何一个方向上到零的距离。在这种情况下,适当的颜色刻度是发散颜色刻度。我们可以将一个不同的刻度视为两个连续的刻度,它们在一个共同的中点处拼接在一起,通常用浅色来表示(图 4.5 )。发散刻度需要平衡,以便从中心的浅色到外侧的深色的渐变,在任一方向上大致相同。否则,数据值的感知幅度将取决于它是否高于或低于中点值。

图 4.5:发散颜色刻度示例。发散的刻度可以被认为是在共同的中点颜色处拼接在一起的两个连续刻度。发散刻度的常见颜色选择包括棕色至蓝绿色,粉红色至黄绿色以及蓝色至红色。

作为发散颜色刻度的示例应用,请考虑图 4.6 ,其显示德克萨斯州的县的白人百分比。尽管百分比总是一个正数,但这里的发散刻度是合理的,因为 50% 是一个有意义的中点值。高于 50% 的数字表明白人占多数,低于 50% 的数字表示相反。可视化清楚地显示了哪些县白人占多数,哪些县他们是少数,以及哪些县中白人和非白人以大致相等的比例出现。

图 4.6:德克萨斯州的县的白人的百分比。白人在德克萨斯州北部和东部占多数,但在德克萨斯州南部或西部则不然。数据来源:2010 年美国十年普查

4.3 作为突出显示的工具的颜色

颜色也可以是突出显示数据中特定元素的有效工具。数据集中可能存在特定的类别或值,其中包含有关我们想要讲述的故事的关键信息,我们可以通过向读者强调相关的图形元素来强调故事。实现强调的一个简单方法是,将这些图形元素用一种颜色或一组颜色着色,这些颜色可以生动地突出图形的其他部分。这种效果可以通过强调色刻度来实现,这些颜色刻度包含一组柔和颜色和一组匹配的更强,更暗和/或更柔和的颜色(图 4.7)。

图 4.7:强调色刻度示例,每个都有四种基色和三种强调色。强调色刻度可以通过几种不同的方式得出:(顶部)我们可以采用现有的颜色刻度(例如,Okabe Ito 刻度,图 4.1 )并使某些颜色变淡和/或部分去饱和,同时使其他颜色变暗;(中)我们可以采用灰度值并将它们与颜色配对; (下)我们可以使用现有的强调色刻度,例如 ColorBrewer 项目中的那个。

作为相同数据如何使用不同着色方法支持不同故事的示例,我创建了图 4.2 的变体,现在我突出显示两个特定州,Texas 和 Louisiana(图 4.8 )。这两个州都在南方,他们是近邻,然而一个州(德克萨斯州)是美国增长速度第五快的州,而另一个州是 2000 年至 2010 年间增长最慢的州。

图 4.8:从 2000 年到 2010 年,两个邻近的南部州,德克萨斯州和路易斯安那州,经历了美国最高和最低的人口增长率,数据来源:美国人口普查局

使用强调色时,基线颜色不会引起注意,这一点至关重要。注意基线颜色是多么单调(图 4.8)。然而,它们很好地支持强调色。很容易犯下使用过于丰富多彩的基线颜色的错误,这样他们最终会争夺读者对强调色的注意力。但是,有一个简单的补救措施。只需删除图中所有元素的所有颜色,但突出显示的数据类别或点除外。图 4.9 中提供了该策略的一个示例。

图 4.9:田径运动员是参加流行运动的最矮和最瘦的男性职业运动员之一。数据来源:Telford and Cunningham(1991)

参考

Brewer, Cynthia A. 2017. “ColorBrewer 2.0. Color Advice for Cartography.” http://www.ColorBrewer.org.

Okabe, M., and K. Ito. 2008. “Color Universal Design (CUD): How to Make Figures and Presentations That Are Friendly to Colorblind People.” http://jfly.iam.u-tokyo.ac.jp/color/.

Telford, R. D., and R. B. Cunningham. 1991. “Sex, Sport, and Body-Size Dependency of Hematology in Highly Trained Athletes.” Medicine and Science in Sports and Exercise 23: 788–94.

5 可视化的目录

原文: 5 Directory of visualizations

校验:飞龙

自豪地采用谷歌翻译

本章提供了通常用于可视化数据的各种图形的简单可视化概述。它既可以作为目录,也可以用来查找您可能不知道的特定名称的可视化,如果您需要找到您经常制作的图形的替代方案,则可以作为灵感来源。

5.1 数量

可视化数量的最常见方法(即,针对某些类别显示的数值)是使用垂直或水平排列的条形(第六章)。但是,我们也可以将点放在相应条形的结束位置(第六章),而不是使用条形图。

如果有两组或多组我们想要显示数量的类别,我们可以对条形图进行分组或堆叠(第六章)。我们还可以将类别映射到 xy 轴上,并通过热图(第六章)按颜色显示数量。

5.2 分布

直方图和密度图(第七章)提供了最直观的分布可视化,但两者都需要任意参数的选择,并且可能会产生误导。累积密度和分位数-分位数(q-q)图(第八章)总是忠实地表示数据,但可能更难以解释。

当我们想要一次可视化许多分布,和/或我们主要感兴趣的是分布之间的整体变化时,箱形图,提琴图,带状图和 Sina 图是很有用的(9.1 节 )。堆叠的直方图和密度图允许更深入地比较较少数量的分布,尽管堆叠的直方图可能难以解释并且最好避免(7.2 节)。Ridgeline 图可以作为提琴图的有用替代品,并且在可视化非常大量的分布或随时间的分布变化时通常是有用的(9.2 节)。

5.3 比例

比例可以显示为饼图,并排条形或堆叠条形图(第 10 章),并且就数量而言,条形可以垂直或水平排列。饼图强调单个部分加起来是整体并突出显示简单的部分。然而,在并排的条形中更容易比较各个部分。对于一组比例,堆叠条形看起来很尴尬,但在比较多组比例时可能很有用(见下文)。

当在多个条件下可视化多组比例或比例变化时,饼图往往是空间效率低下且关系模糊的。只要比较的条件数量适中,分组条形就可以工作得很好,并且堆叠条形可以适用于大量条件。当比例沿连续变量变化时,堆叠密度图(第 10 章)是合适的。

当根据多个分组变量指定比例时,马赛克图,树形图或平行集图是有用的可视化方法(第 11 章)。马赛克图假设一个分组变量的每个水平都可以与另一个分组变量的每个水平组合,而树形图不会做出这样的假设。即使一个组的细分完全不同于另一个细分,树形图也能工作得很好。当有两个以上的分组变量时,平行集图比马赛克图或树形图更好。

5.4 x - y 的关系

当我们想要相对于另一个定量变量显示一个定量变量时,散点图代表了原型可视化(12.1 节)。如果我们有三个定量变量,我们可以将一个定位到点大小,创建一个称为气泡图的散点图变体。对于配对数据,沿 xy 轴的变量以相同单位测量,添加一条表示 x = y 的直线通常很有帮助(12.4 节)。配对数据也可以显示为由直线连接的成对点的斜率图(12.4 节)。

对于大量的点,由于过度绘图,常规散点图可能变得无法提供信息。在这种情况下,等值线图,2D 箱形图或六角箱形图可以提供替代方案(第 18 章)。另一方面,当我们想要可视化两个以上的数量时,我们可以选择以相关图的形式而不是基础原始数据来绘制相关系数(章节 12.2 )。

x 轴表示时间或严格增加的量(例如治疗剂量)时,我们通常绘制线形图(第 13 章)。如果我们有两个响应变量的时间序列,我们可以绘制一个连通的散点图,我们首先在散点图中绘制两个响应变量,然后连接对应于相邻时间点的点(13.3 节)。我们可以使用平滑线图来表示更大数据集中的趋势(第 14 章)。

5.5 地理空间数据

显示地理空间数据的主要模式是地图形式(第 15 章)。地图采用地球上的坐标并将它们投影到平面上,使得地球上的形状和距离大致由 2D 表示中的形状和距离表示。此外,通过根据数据对地图中的这些区域着色,我们可以显示不同区域的数据值。这样的地图称为等值区图(15.3 节)。在某些情况下,根据一些其他数量(例如,人口数量)扭曲不同区域或将每个区域简化为正方形可能是有帮助的。这种可视化称为统计地图。

5.6 不确定性

误差条表示某些估计值或测量值的可能值的范围。它们从表示估计值或测量值的某个参考点水平和/或垂直延伸(第 16 章)。参考点可以以各种方式显示,例如通过点或条形。渐变误差条同时显示多个范围,其中每个范围对应于不同的置信度。它们实际上是多个误差条,其中不同的线厚度彼此叠加。

为了实现比误差条或分级误差条更详细的可视化,我们可以看到实际的置信度或后验分布(第 16 章)。置信区域提供清晰的视觉不确定感,但难以准确读取。眼睛图和半眼图将误差条与可视化分布(分别为提琴和脊线)的方法相结合,因此显示了一些置信水平和整体不确定性分布的精确范围。分位点图可以作为不确定性分布的替代可视化(16.1 节)。通过以离散单位显示分布,分位点点图不是那么精确,但比提琴或脊线图所示的连续分布更容易阅读。

对于平滑线图,误差条的等效值是置信带(16.3 节)。它显示了线条在给定置信水平下可能通过的一系列值。与误差条的情况一样,我们可以绘制分级置信带,一次显示多个置信水平。我们还可以显示单独的拟合绘图来代替置信带或放在一起。

posted @ 2025-11-24 09:11  绝不原创的飞龙  阅读(14)  评论(0)    收藏  举报