第 7 章:可视化您的数据

到目前为止,您已经学习了如何从社交媒体收集、处理和处理数据。数据分析的下一步是利用可视化的力量来更好地理解您的发现。

可视化是几乎立即理解数据的有效方法。例如,图表可以帮助我们掌握数据随时间的变化情况。颜色编码的电子表格可以提供数据集中值范围的清晰图片。

在本章中,我们将讨论如何将可视化与我们在前一章中分析的 Twitter 机器人数据一起使用。我们将使用 Google 表格中的图表工具和视觉格式来更深入地了解这些数据。

通过图表了解我们的机器人

在第 6 章中,我们使用了数字取证研究实验室开发的标准来确定 Twitter 用户 @sunneversets100 是否是一个自动化的“机器人”帐户,而不是一个真实的人。提醒一下,每天发推文 72 次或更多是可疑活动,表明帐户可能是机器人,每天发推文 144 次或更多被视为高度可疑行为。我们发现有很多天@sunneversets100 发推文的次数远远超过任一阈值。

在那一章的最后,我们还研究了机器人的行为与正常人的行为相比如何。图 7-1 显示了结果。

图 7-1:一个电子表格,比较了疑似机器人帐户和一个人控制的帐户的推文活动

电子表格清楚地显示,@sunneversets100 的推文比选择作为比较的用户多得多。但是,仅通过阅读文本中的发现或查看电子表格中的值,可能很难理解数字之间的比较。这就是图表等数据可视化可以提供帮助的地方。

选择图表

图表和数据驱动的图形可以让我们立即了解更大的背景。我们可以使用形状(例如,圆形、矩形或线条)和颜色来比较值,包括它们如何随时间变化。这些可视化可以帮助我们的观众一目了然地看到模式或关键发现。

但是,在使用它们之前,我们需要了解不同类型的图表。一些图表类型主要在统计学家或数据处理人员的圈子内为人所知,而另一些则为普通大众所熟悉。考虑到这一点,重要的是要认识到任何给定的图表在传达一种类型的数据方面可能非常有效,但完全无法传达另一种类型的数据。出于这个原因,我们需要考虑我们想要使用图表显示的内容。正如您之前了解到的,数据分析有点像面试。确定每个问题的答案需要一组略有不同的工具,对我们的数据集提出问题可以帮助我们确定使用哪种图表来寻找答案。

选择正确的图表可能很棘手,但对我们来说幸运的是,学者和图形编辑人员开发了许多指南来提供帮助。一个例子是一页纸的“图表建议——一个思想启蒙者”,它是一些最常见的数据可视化类型的流程图,如图 7-2 所示。

图 7-2:Andrew Abela 开发的指南,© Andrew V. Abela,2012。Abela, A. Advanced Presentation by Design。

让我们分解不同的图表类型及其使用方式。 首先,不同数据集之间存在比较。 例如,在我们之前的分析中,我们比较了两个数据集:一个是机器人,另一个是人类。

一个常见的比较图是柱状图,如图 7-3 所示,它绘制了图 7-1 中合并的透视表(本章稍后将介绍如何制作这些图表)。

图 7-3:比较机器人和人的活动的柱状图

除了使用图表来比较单个数据点之外,您还可以使用它们来比较数据集的分布或值的范围。 想象一下,将您的整个数据集划分为多个桶——例如,年龄段或等级(A 到 A–、B+ 到 B– 等等)——然后计算每个桶中出现的数量或百分比。 这是理解分布的基本方法。

例如,回到@sunneversets100 数据,我们可以查看每条推文收到的转发分布。 在第 106 页图 6-3 所示的“原始数据”电子表格中,您会看到转推值的范围从 0 到 1-100、101-200、201-300 等等。

再次参考图 7-2 中的流程图作为指导,我们看到对于像我们这样分布较小的数据,我们应该使用图 7-4 中的简单柱状图。

图7-4:每个转发阈值的推文数量分布图表

我们也可能对了解整个数据集的构成感兴趣,而不管像年龄段或转发阈值这样的细分。 换句话说,我们可能只想查看数据集的组成,我们可以使用图表来了解数据集的一部分与整体的关系。 在图 7-4 的示例分布图中,我们看到大多数推文(超过 2,000 条)收到了 1 到 100 次转发,在这种情况下,这向我们表明机器人可能在某种程度上有效地获得了推文的参与度, 但并非如此。

机器人经常被用来放大他人的信息,这意味着他们不会发布那么多原创内容。 出于这个原因,看看“@sunneversets100”的推文中有多少被转发可能会很有趣。 图 7-5 中的饼图向我们展示了 99.4% 的 @sunneversets100 是转发。

图 7-5:饼图和圆环图非常适合显示整体中类别的比例。

最后但并非最不重要的一点是,您可以使用图表来显示数据类别可以具有不同的关系。例如,您可以询问一个值与另一个值的关系,并研究一个值列的行为是否会导致另一列的值减少或增加,或者一列的值是否与另一列的值的行为相关。图表帮助我们说明这些关系。

例如,我们可能会尝试了解发送推文的时间与收到的转发次数之间的关系。换句话说,一天中是否有推文在转发参与度方面表现特别好的时候?确定这一点的一种好方法是散点图,其中每个数据点沿 x 轴(坐标系中的水平轴)和 y 轴(垂直轴)放置。

通常,研究人员感兴趣的是测量一个因外部因素(如雨伞的销售)而可能发生变化的因变量或数据集如何受到无法控制的自变量或数据集(如下雨)的影响。在一项实验中,研究人员想要了解下雨对雨伞销售的影响程度,我们可以使用散点图来查看这种关系。惯例是沿 x 轴绘制自变量,沿 y 轴绘制因变量。在这种情况下,我们可以问自己:一天中的时间会影响推文收到的转发次数吗?图 7-6 显示了沿 x 轴和 y 轴绘制这些变量的图表。

图 7-6:@sunneversets100 发布的所有推文的散点图,由沿 x 轴的推文时间和沿 y 轴的转发次数绘制

指定时间段

在制作图表之前要记住的最后一个方面是您要用于数据集的时间段。您对数据集提出的问题通常需要您指定特定的时间点或更长的时间范围。要绘制这种称为时间序列的图表,我们必须将我们的数据聚合成小块时间,例如通过推文的时间戳或更细粒度的时间单位,如月或年。

例如,在上一章中,我们使用数据透视表来统计“@sunneversets100”和“@nostarch”的每日推文,从而为我们的图表创建了一个时间序列。然后我们根据它们的共同时间范围合并这两个数据集。这使我们能够并排比较它们。

现在您已经了解了一些帮助您为数据选择合适的可视化效果的方法,让我们来看看如何在 Google 表格中制作图表。

制作图表

每当我们开始制作图表时,我们需要采取几个步骤:

  • 提出问题。
  • 做有助于回答问题的数据分析。
  • 选择最佳图表格式和工具来帮助回答您的问题。
  • 以所选图表工具能够理解的方式格式化和排列数据(在本例中,该工具是 Google Sheets)
  • 插入或选择数据,然后使用该工具创建图表。

幸运的是,与 Excel 一样,Google Sheets 提供了一套有用的图表工具,允许您直接在电子表格中添加快速图形。为了使这个练习简单,我们将使用上一章的发现制作一个图表。让我们来看看刚刚列出的步骤。

我们试图通过分析来回答的核心问题是机器人的行为与人类的行为相比如何。我们为回答这个问题所做的分析产生了不到三周的时间序列。这需要处理第 1 步和第 2 步。

接下来是为分析选择最佳图表格式。我们正在尝试比较两个数据集——机器人和人类的日常推文活动——并且我们想展示这种比较随着时间的推移。图 7-2 中的流程图建议使用柱状图。

现在我们格式化我们的数据。正如我们在前一章中所讨论的,处理数据的一个核心部分——无论是在 Sheets 还是 Python 中——是阐明每个电子表格列包含的数据类型。这将有助于我们的工具和编程语言正确解释数据。

在我们的柱形图中,我们将沿 x 轴绘制时间值,沿 y 轴绘制数值(每个帐户每天的推文)。因此,我们应该确保 Sheets 接收一列中的日期值和其他两列中的数字值(这两列代表我们的机器人和人类帐户的每日推文活动),如图 7-7 所示。

图 7-7:包含随时间变化的图表绘制活动所需的所有值的电子表格

使用我们在第 6 章中学到的知识,我们选择包含日期的列中的数据,然后通过选择“格式”>“数字”>“日期”对其进行格式化。 然后我们选择包含每个帐户 Twitter 活动记录的列,并通过选择“格式”>“数字”>“数字”将它们格式化为数字。

下一步,我们需要选择要使用哪种图表来绘制数据。 和以前一样,确保选择要绘制图表的所有数据(在本例中为包含格式化日期和 Twitter 活动级别的列),然后选择“插入”>“图表”。

这应该直接在我们的电子表格中插入一个图表,如图 7-8 所示,同时打开一个名为 Chart Editor 的窗口。

图 7-8:显示机器人和人类大约三周 Twitter 活动的图表

图表编辑器允许我们修改图表并由两个选项卡组成:数据和自定义。在“数据”选项卡中,我们可以调整或修改图表的内容,例如我们选择制作图表的单元格范围或代表图表标题的行。对于本练习,让我们首先选择图表类型下拉菜单下的柱形图。

从图表编辑器的“自定义”选项卡中,我们可以对图表进行样式化;例如,我们可以更改图表的标题,设置轴的最小值或最大值,或为图表文本选择不同的字体。让我们通过选择菜单项系列来更改代表机器人数据的颜色。这应该展开一个下拉菜单,其中包含我们绘制的两个数据系列——机器人数据和人类数据。每个系列通常以列标题命名。在本练习中,我们可以选择 @sunneversets100 并使用桶图标下的调色板更改列的颜色。

最后但并非最不重要的一点是,我们可以通过单击图表右上角的三个点并选择移动到自己的工作表...选项来将图表移动到自己的工作表上。如果您的数据集的细微差别在更大的屏幕上更明显,这将很有帮助。

虽然我们无法探索 Sheets 提供的所有类型的图表,但本章中列出的原则应该有助于阐明在深入研究数据可视化之前需要采取的步骤。与往常一样,通过询问有关数据的问题,事先考虑要探索的内容很重要。如果您遵循本章中规定的过程,您可以更轻松地确定可视化数据以进行分析的正确方法。

条件格式

到目前为止,我们已经讨论了如何将数据格式化为图表,以便我们的观众更容易理解。虽然许多人在学校、工作场所或媒体中都会遇到图表和图形,但很少有人知道用于在电子表格中格式化数据的替代工具。这些工具允许您直观地分析数据,而无需经过创建图表的过程。

表格中一个特别有用的功能称为条件格式,这是一种根据条件为电子表格中的单元格着色的工具。这有点像能够在电子表格中编写 if 语句。例如,您可以创建一个条件格式,说明如果单元格中的值满足特定条件,则用特定颜色填充该单元格。您可以将条件格式想象成机器人使用荧光笔浏览电子表格,根据您设置的规则更改单元格的颜色。

单色格式

为了准确理解条件格式的工作原理,让我们将其应用于我们的 Twitter 数据集。假设我们想要一种快速的方法来判断某个值是否高于我们对可疑或高度可疑的推文活动的阈值。通过条件格式,我们可以告诉工作表对显示等于或大于 72(且小于 144)的数字的任何单元格使用一种颜色,并为显示等于或大于 144 的数字的任何单元格使用另一种颜色。

为了将条件格式应用于我们的单元格,首先我们需要选择要应用规则的单元格。然后我们选择格式 > 条件格式,这会在表格中打开一个名为条件格式规则的窗口。我们将在此处指定电子表格的规则。

首先让我们看看如何将单色格式应用于我们的电子表格,这意味着根据条件将一种颜色应用于一组单元格。我们首先将包含从 72 到 143 的数字的任何单元格着色为黄色:这是机器人发布可疑次数的日子。在单色选项卡下的窗口中选择添加另一个规则选项。在如果...设置单元格格式下,选择介于之间。您应该会看到两个字段,您可以在其中指定两个值:最小值和最大值。要着色为黄色,单元格必须包含此范围内的值。对于我们的 Twitter 示例,输入 72 作为最小值,输入 143 作为最大值。然后,在格式样式下,选择颜色以突出显示单元格。如前所述,我们使用黄色来表示推文活动是可疑的。

要添加另一个格式规则,请在单色选项卡中选择添加另一个规则。和我们之前一样,如果...选择格式单元格,但这次选择大于或等于条件并将值设置为144。然后,在格式样式下,选择不同的颜色。在这种情况下,我选择了红色。

设置这两个规则后,电子表格应将显示 72 到 143 值的单元格着色为黄色,将值等于或大于 144 的单元格着色为红色,如图 7-9 所示。

图 7-9:根据条件格式规则着色的电子表格

现在,您应该能够查看电子表格并快速检测可疑行为和高度可疑的行为。

我们不仅可以使用单色格式设置单独的规则来为单元格着色,而且我们还可以设置一系列颜色的单元格格式。我们接下来会看看。

色阶格式

我们可以使用色标,而不是使用单独的规则来格式化我们的电子表格。如果我们选择此选项,Sheets 将查看我们选择的所有单元格,找到数据集中的最低值和最高值,然后根据色标对每个单元格进行着色。包含更接近最低值的值的单元格将以色标左侧的颜色着色。值越接近我们数据集的高端,它就越接近色标右侧的颜色。如果您还没有准备好制作图表,这是查看数据集分布的另一种方法。

我们以与单色格式相同的方式打开色阶格式菜单:突出显示数据,选择格式 > 条件格式,然后在条件格式规则窗口中选择色阶选项卡。您的电子表格现在应该类似于图 7-10。

虽然这种格式不如单色格式精确,但它是一种非常有用的工具,可用于可视化数据集的值如何相互比较。单色格式允许您设置特定的阈值。这有点像从类别中挑选值并询问它们是否符合特定标准。在前面的示例中,这意味着我们正在寻找机器人显示可疑行为的日期。我们的问题需要一个正确或错误的答案:在任何一天,机器人是否发布了 144 次或更多次推文?相比之下,色标更多地用于探索目的。我们不太清楚我们的阈值是什么或者我们想如何限定一个值,但我们想了解我们手头的值的范围和分布。

图 7-10:用色标格式化的电子表格

概括

在本章中,您了解了 Google 表格提供的不同可视化工具。 虽然我们没有足够的空间来了解每种图表类型的工作方式或如何修改每种类型的数据,但您现在应该对表格可视化的工作方式有一个大致的了解。

Google 表格易于导航的按钮和菜单是通过视觉效果熟悉数据分析的好方法。 当您在下一章中开始进行更多的代码驱动分析时,您会发现可以应用从本章中学到的相同概念——为正确类型的分析投射正确的数据可视化。