# 28 选择合适的可视化软件

> 原文： [28 Choosing the right visualization software](https://serialmentor.com/dataviz/choosing-visualization-software.html)

> 校验：[飞龙](https://github.com/wizardforcel)

> 自豪地采用[谷歌翻译](https://translate.google.cn/)

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

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

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

## 28.1 可复现性和可重复性

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

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

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

![](img/edb921e5dff02b6b5b91b3aeddde10bf.jpg)

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

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

## 28.2 数据探索与数据展示

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

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

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

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

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

![](img/9bc184d6888e68d5e02fc604b3751200.jpg)

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

## 28.3 分离内容和设计

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

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

![](img/7ad930ba0ca6cf694cb17b778dfe5fad.jpg)

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

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

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