数据可视化分析:Tableau原理与实践(全彩)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 数据基础概念:字段、图形与拖曳逻辑

2.2.1 编码:从真实世界到虚拟世界

真实世界充满了复杂性,计算机理解世界的方式是把世界的各种存在“编码”为“字段”,然后借助字段的相互关系描述世界。比如“喜乐君”代表主体(一个人),“Tableau”代表客体(一款软件),下面以“喜乐君在写一本Tableau主题的书”来理解关系逻辑。如图2-7所示,“字段”通常是有效数据编码的最小单位。

图2-7 字段是对世界的编码

字段是计算机世界对我们感官世界的抽象描述和概括,也是连接真实世界和计算机世界的桥梁。按照描述对象的不同分类,字段编码会有一个基本属性:数据类型。最主要的两种数据类型是字符串和数字,分别描述文本和数值。

字符串中有一些具有鲜明的独特性。其一是时间,Tableau把时间分为“日期”和“日期时间”两个子类。时间相对于其他字符串的独特性在于自带层次和具有连续性。其二是地理位置,它们代表了众所周知的全球唯一位置或者区域。其三是布尔值,即有/无、是/否的判断,计算机用1/0记录。

其中,数字又可以被分为整数和小数。在Tableau 2020.2之前的版本中,“数字(小数)”被误译为“数字(十进制)”,这是对“decimal”的错误翻译,笔者已经提交给Tableau国际化小组并确认会在Tableau 2020.2版本中尽快更正。本书中的相关插图都做了提前修改。

2.2.2 数据分析的两种表达方式:数据交叉表与可视化图表

在介绍字段的分类之前,先介绍一下两种数据分析的表达方式:数据交叉表和可视化图表;前者强调数据,后者强调图形,二者的背后都是数据的聚合。相比之下,可视化的表达方式与直觉更加相应。

图2-8中的两种视图都由类别、子类别、销售额与利润4个字段构成(销售额和利润默认使用了“求和”聚合)。唯一的差别在于展示的方式不同,右侧多了坐标轴和图形标记。

图2-8 两类数据视图:数据交叉表和可视化图表

数据分析犹如准备一份可口的美味佳肴,而数据库中有的所有字段,如同炒菜的基本食材。我们先要知道肉、菜、料、油的不同分类及其特征,掌握放每一类食材的烹饪反应,再加上想象力和创造性作为,从而准备一份独特的美味。

根据数据属性可以把字段分为分类和量化两类,根据数据值是否连续又可以把字段分为连续和离散两种。下面将从这两个视角详细分析,总结从字段到图形的逻辑,读者应该牢记最后的结论。

2.2.3 字段的两种分类:维度和度量

在2.2.1节讲到,数据类型主要分为字符串和数字两种。从问题的角度,它们分别对应“是什么”和“有多少”,专业术语称之为“分类字段”和“量化字段”,Tableau称之为维度(Dimension)和度量(Measure),这也是大部分分析工具对数据的分类方法。

每个问题必然包含维度和度量两种字段,二者的作用截然不同。先看以下几个问题:

● 各类别、各细分利润总和是多少?

● 各地区、各月份利润总和趋势如何?

公司利润合计是多少?

同样是分析利润,这几个问题的差异是由什么决定的?是由问题中的分类字段,即维度决定的。

可见,维度描述“问题是什么”,度量描述“答案有多少”。在Tableau Desktop中,每个问题必然对应一个视图,而问题的层次对应视图的详细级别,因此常说“维度决定了视图详细级别(LOD)”。在上面的3个问题中,本书分别用“类别*细分”“地区*月份”和“公司”来描述问题的层次。

聚合用来提供答案,由明细数据中的众多数据聚合而成。概括而言,用图2-9总结维度字段和度量字段的作用。

图2-9 字段的分类、特征与结果

在Tableau Desktop中,把字段加入视图后,维度字段构建详细级别(LOD)来表达“问题是什么”,而度量自动聚合回答“答案有多少”。在图2-10中,我们用数据交叉表和可视化图表展示“每个类别、子类别的利润和销售额总和”,由于使用了相同的维度和度量字段,两种视图所要回答的问题完全一致。

图2-10 维度和度量在数据交叉表及可视化图表中的作用

虽然回答的问题完全相同,但是效果却迥然不同。图2-10右侧的可视化图表用条形图的长度代表销售额(注意坐标轴)、颜色代表利润(注意颜色图例),无须理性思考即可直观地发现:书架和椅子的销售额和利润贡献都很好,而桌子的销售额居中但利润严重亏损。

相比数据交叉表,可视化图表的奥秘在于增加了坐标轴,这就取决于字段的另一个属性:离散和连续特征。

2.2.4 字段的两种特征:连续和离散

字段是连续的,指字段内的数据有先后顺序。主要有两类连续字段:日期和数字。

其一是日期,3月13日必在3月14日之前,且在3月12日之后,这3个数据有必然的先后顺序。

其二是数字,3、4、5、6和1.1、1.2、1.3都是前后相序的,称之为连续。

在图表中,表达连续数据的最佳方法是把数据放在坐标轴上,如图2-11所示,每个刻度代表一个日期或者一个数值,分别对应坐标轴的一个位置。

图2-11 离散生成标题、连续生成轴

除此之外的字段,比如一组公司名称“石药、以岭、国药、哈药”,各个数据之间相互独立,没有先后顺序也不相互依赖,这样的字段称之为“离散字段”。不过,离散字段可以根据分析需要设置排序条件,比如按照市值、利润率,或者成立日期排名。

在视图中表示离散字段,就是一组数据的排列,可以称之为“列表”或者“标题”。在Tableau Desktop中对应数据源中的明细。

判断字段内的数据是否有必然的先后关系,是理解连续和离散字段的最简单的方式。还有一种更加抽象的理解方式:看字段内任何两个元素之间是否可以切分为更小的单元。理论上连续字段都可以不断切分,比如在3和4之间还有无数个数字,3月1日和3月2日之间还有无数个时间点。相反,离散字段内的两个元素是独立的,也就没有切分依据。第5章会介绍使用“数据桶”(Bin)功能,把连续的数据按照一定的距离(步长)划分为离散的分组,相当于对连续字段的重新切分。

有先后顺序和能无限切分,是连续字段的基本特征。

为了更好地区分字段的两个特征,Tableau中使用颜色来表示不同的字段:绿色代表连续(想象一下红绿灯,绿色代表通行,通行即连续),蓝色代表离散。因此,将字段拖曳到视图中如同一个胶囊,每个胶囊也都按照连续和离散属性标记了颜色——本书也会采用这种颜色表示法,帮助读者理解讲述的内容。

如上所述,离散字段通常生成标题,而连续字段生成坐标轴。

连续字段和离散字段不仅影响视图的显示方式,也会影响颜色的使用。如图2-12所示,给坐标轴上的数据着色,Tableau Desktop会自动增加渐变色。

图2-12 离散字段和连续字段的颜色表示

相比之下,离散字段中的多个元素没有必然的先后顺序,任意两个字段之间也就不能继续切分其他数值。比如“员工ID”“顾客姓名”。离散字段在可视化视图中会用并排的标题来表示,既然相互之间无关,我们在给离散字段着色时,颜色不是渐变色,而是相互无关的对比色。

2.2.5 从字段到图形:Tableau Desktop的设计逻辑

维度与度量、连续与离散,是Tableau Desktop描述字段最关键的视角,也是计算机把数据转化为图形的逻辑基础。Tableau Desktop用拖曳来自动生成可视化图形,那么拖曳的逻辑是怎样的呢?

简而言之,可以概括为:

维度决定层次,度量默认聚合;

离散生成标题,连续生成坐标轴。

数据分析是解释问题和寻找答案的过程。问题和答案都由两部分构成:分析对象(是什么)和分析特征(有多少)。Tableau Desktop用维度描述对象“问题是什么”,度量描述特征“答案有多少”;在分析过程中,维度描述视图中的详细级别,对应问题的层次,即“维度决定层次”(见2.2.3节)。

“是什么”是一个展示数据库有哪些不重复数据的过程,并全部列举出来,因此“离散生成标题”,如图2-13所示。

图2-13 标题与聚合

而“有多少”是用一个数概括所有数据,因此“度量默认聚合”的结果就是一个数字。“聚合”取砂石聚合为山、月日聚合为年的意思。最常见的聚合是求和。

当然,维度也可以根据需要手动聚合,比如计算新客户的数量(计数)、最早的购买日期(最小值)。下面我们以5笔订单的销售金额为例,记为{4,3,4.5,7,3},来介绍常见的聚合方式,如表2-1所示。

表2-1 多种聚合方式

注意,上述聚合方式都会忽略空值,空值用null代表。要把空值改为0,可以在字段外面嵌套一层ZN函数——ZN即if null then zero(如果为空,则为0)(见第8章)。比如:

SUM(ZN([销售额]))

聚合是数据分析最关键的动作,图2-14描述了计算的过程和层次的变化。

图2-14 聚合的过程

至此,我们介绍了数据分析最基础的概念部分,核心是理解问题背后的数据层次。回答层次问题需要聚合,聚合结果可以用数据交叉表展示,也可以用可视化图表来展示;生成可视化图表最常见的方式是坐标轴,坐标轴借助连续字段创建。笔者多年的学习和总结,如图2-15所示。

图2-15 字段的分类、特征与拖曳逻辑

深刻理解并完整地记住图2-15的内容,是熟练并优雅地使用Tableau Desktop的必备条件。图2-15不仅适用于Tableau Desktop,也适用于同类的可视化分析工具。