详细指南!手把手教你上手Tableau软件!

原文标题:IntermediateTableau guide for data science and business intelligence professionals

作者:PAVLEEN KAUR

翻译:李海明

校对:顾佳妮

本文约5000字,建议阅读8分钟

通过这篇文章,教大家使用Tabelau软件,不用编程就可以做简单的数据分析。

介绍

“图片最大的价值就在于它能驱使我们发现之前从未意识到的内容”——John W. Tukey

我们假设你手里有一些数据,但你并不擅长编程,却希望能够从中收集并整理出一些自己的见解。这时你可能会手足无措,不知该从哪里开始。

让我来告诉你——借助Tableau,你可以让数据中的信息像下面这张图表一样一目了然,而且操作简单完全不用编程。 快来见识一下Tableau的神奇吧!

本文主要针对:对Tableau软件已经比较熟悉的、可以用其绘制一些基本图表并且希望能够通过学习开阔视野的人士。

对于那些从未领略Tableau的曼妙与简约的初学者,请先快速阅读Tableau入门(https://www.analyticsvidhya.com/blog/2017/07/data-visualisation-made-easy/),尝试进行一些简单的可视化练习后,再回到本文不迟。

这篇文章将会探讨一些能够帮助我们用Tableau绘制动态图的核心功能。现在,就让我们赶快开始吧!

目录

1. 多源数据处理

数据连接

数据融合

2. 数据的条件组合

集合

3. 数据计算与粒度选择

4. 参数控制

5. 结束语

多源数据处理

数据连接

在一个表里存储所有的数据是不现实的。为了避免更新带来的数据异常,一般总是把数据存储在多个关系表里。为了便于理解,这里举一个简单的例子。

现有一家想要扩大经营的超市,发现退货订单量每天都在增加。为了分析出产品被退回的原因并找到正确的应对方法,他们绘制了下面这张图表;

从上表中可以发现,被退回数量最多的产品是粘合剂。若以条形图的颜色判断,机器类与桌类产品退货率(退货/购买)最高。

上面这张图表看起来与前一张似乎没什么两样,但实际上它是由两个表的数据——订单表与退货表组合建立的。这就是通常所说的连接。

我们再举一个例子来便于理解连接:

点击这里下载该样本超市的销售数据。(https://github.com/pavleenkaur/TableauTutorial-SuperstoreData/blob/master/Sample-Superstore.xls)

打开Tableau并倒入数据:

该数据集合由三个表组成:订单表(Orders),订购人表(People)与退货表(Returns)。在这里我们先关注订单表和退货表。

拖拽Orders至空白处并使用数据解释器来清除错误数据。

拖拽Returns至同一区域,便得到下图所示:

把两个表进行连接后,至少可以得到一个交叉区域, Tableau会根据两张表的公共列订单ID,自动将这两张表进行内连接。通过内连接, 只保留两张表中有相同订单ID的数据行。

你也可以更改Tableau中的连接方式与连接字段, 需要确保对连接做的修改是可行的。

更改连接方式(从内连接到右外连接):

更改连接字段:(连接字段)

看到我怎样将Orders 的Row ID与Returns里的Orders ID连接起来了么?但由于这两个数据不兼容,所以看不到任何记录,而且靠近圆圈的那个红色标记提醒我们出错了。

现在我们再回到图表中:

把订单表(Orders)中的子分类(sub-Category)拖拽到Rows上,退货表(Returns)的退货总数拖拽到Columns上。)

把ROW ID拖拽到Marks窗口处,并将其统计方法从计数(Count)转换为求和(Sum)。现在拖拽至该图表上:

最后点击“显示结果“(Show me)并选择子弹图(BulletGraph),便可得到想要的图表了。

这里我们使用了内连接, 你还可以根据需要选择内、左、右和外连接中的任何一种方式。

数据融合

数据融合与数据连接非常相似,但又有所不同。连接的数据 要求来自同一数据源,通过上面例子我们可以看到,我们使用的数据均来自于 相同的Excel格式的文件。但是数据融合可以让我们使用来自不同数据源的数据。同样,我们来看一个例子。

该超市还涉足咖啡饮品行业,其品牌CoffeeChain在各州与超市同时经营。然而在看到下面这张业绩图后,管理层开始考虑要关掉一些咖啡分店。

我们可以看到,有些咖啡分店有着与超市同样出色的业绩,比如加州

我们可以看到,有些咖啡分店有着与超市同样出色的业绩,比如加州California

和纽约New York 分店。同时,也有一些咖啡分店业绩惨淡,如爱荷华州Iowa

与新墨西哥州New Mexico 分店。与数据连接类似,上图中的两个不同行业的数据集,源于不同的数据源——一个来自Excel,一个来自TDE数据库。

下面我们通过绘制一张图表来更好地理解数据融合的概念。我们从超市和咖啡连锁店的数据开始。the Superstore(https://github.com/pavleenkaur/TableauTutorial-SuperstoreData/blob/master/Sample-Superstore.xls)数据;

与咖啡连锁店样本(https://github.com/pavleenkaur/TableauTutorial-SuperstoreData/blob/master/Sample-CoffeeChain.tde)数据库;

你也可以在这里找到相关数据:(https://github.com/pavleenkaur/TableauTutorial-On-AnalyticsVidhya/blob/master/Sample-Co eeChain.xlsx)。

首先导入超市数据样本Sample-Superstore.xls;

然后进入工作表,点击数据->新数据源(Data -> New Data Source )并且下载CoffeeChain的TDE文件,将数据集一并导入:

选中Superstore数据库下的States表,将其拖拽至行Rows,将销售表Sales拖拽至列Columns。

选中CoffeeChain下的销售表Sales,将其拖拽至列Columns上,可得到下图:

这里你肯定观察到了一些小问题,我们来逐一来解决:

屏幕的左上角,超市数据库上有一个蓝色标记——表明该库为主数据源

CoffeeChain数据上有一个橙色标记——表明该库为次要数据源

这里有一个橙色链条链接在CoffeeChain数据库中的州表——即数据融合区域——意思是该区域在这两个数据集上是通用的

图表中’>29null’表示这个表中中有29个空值, 这是因为CoffeeChain数据集中州的数据量不如Superstore数据集中州的数据量多。

我们互换第三步与第四步,这样便可以修正这些空值:

选中超市CoffeeChain中的州表States,将其拖拽至行Rows,将销售表Sales拖拽至列Columns。可得:

选中Superstore下的销售表Sales,将其拖拽至列Columns上,可得:

将标记部分至区域图表中的每一个图形对应的图表都进行更改;在Marks板块的Area区域中,可以对每个图标做相应的修改

右键点击第二个图表并且选择双轴Dual Axis将两个图形合二为一;

最后就是变更配色方案了,就这样,我们便完成了一次数据融合!

数据的调节结合

现在,无论你的数据是融合的还是连接的,都已经准备妥当,让我们一起做些有趣的仪表盘吧。这里我们将只使用Superstore数据:Orders+Returns(左连接)

聚合

现在我们以调查分析为例来快速设计一下。在一个食品消费调查中,食物偏好部分里,你可以用“LF”来替代“低脂肪”,或用“reg”替代“正常”。

这个案例里,在图像化过程中会出现这样一个问题:

如你所见,因为使用了不同的命名,

如你所见,因为使用了不同的命名,所以这个可视化的效果不太理想。因此,有一种可行的解决方案就是将LF与Low Fat合为同一组,reg与Regular合为另一组:

下面这个仪表盘会更有助于我们理解:

以上是关于分类及其子分类的退货分析。然而我们在柱状图中看不到具体数据,其中复印机的退货率最高,家具次之:

目前为止,看起来销售团队一直做得不错。然而实际上退货数量的增加也很快, 不过幸运的是,退货量的增速有所放缓。

通过饼图我们可以非常直观的看出每个分类的退货情况。比如,技术类产品目录下的退货量最多。

其他分析我会留给你自己去做,比如退货量在各州的分布情况。一旦你学会了制作上面这样的图表,你就可以轻松地去实现数据分析了。现在我们开始学习:

我们会从下面这个图开始,请注意该图是Orders与Returns表的左连接(左连接):

在另一个表里面,做下面这个图:

看到退货Returns表下的已退回维度了么?我们会用维度来建分组,右键单击这个维度:

去“Create->Group”。我们会创建不同的产品组来区分已退回的和尚未退回的产品,点击“Null->Group”,更改一下名字:

相同的操作创建“Yes”维度,最后分组如下:

单击“Apply->ok”,之后你可以在维度下看到一个名为“ReturnedOrNot”的组。

拖拽这个新的维度至Marks窗格中的Color处,如下图所示:

这一步会自动分离每一个子目录(子分类)中的销售情况,而这要根据订单中的退货表是否有Null或Yes值来决定。

剩下的步骤就比较模块化了,我们也来做一下:

拖拽Sales至Marks窗格中的Label处;

右键单击 Sales pill -> QuickTable Calculation -> Percent of Total

再次右键单击Sales pill -> Compute Using -> Table(across)

另外,在一些版本中,Null/Yes也常常会以In/Out的别名出现,你可以根据需求来做变更,右键单击Marks窗格中的In/Out blue pill,然后选择编辑别名。

现在我们跳回到已经做好的饼图,对ReturnedOrNot组进行同样的操作。首先我们创建该表的两个副本,选中其中一个:

拖拽该组至图表处,如下图:

右键单击Returned得到:

选择Keep Only,这样你就只能看到已退回图形了。你会看到退货的总损失。剩下的就是用销售值标注了。

现在选中另一个副本,重复前两步,与之前保留已退回图表不同,这里我们保留未退回的图表。这会让你看到剩余/保留的订单Remaining / Retained Orders.

然后做一个曲线图:

拖拽 Order Date至列,Sales至行,便得到这样一个曲线图

在曲线图的顶部,拖拽ReturnedOrNot维度,但是就像之前一样,排除未退回行,右键单击并选择排除Exclude。

现在需要做的,就是将上面的工作表整合至一个仪表盘中。为什么不试试做一个州际退货分布图呢?

集合

在做完退货分析后,你的公司发现退货量的增长并没有那么令人担心,不应该把它作为不扩大经营的理由。

但是超市目前只计划在销售额和利润都超过定额的州扩大经营。比如销售额过40,000,利润过10,000:

所以,上图所示的集合,与组非常相似。在集合中,数据分组可以满足特定的设置条件。另一种解释认为:分组可以帮助你实现更高级别的层级架构,如我们在前一例中所见,而集合能帮助你获得更低的粒度。

让我们通过创建上面的仪表盘以便更好的理解集合的含义:

我们从一个简单的地图图表开始。我们打算在这张地图图表加入销售额与利润,右键单击States并选择Create-> Set.

在字段中填入设定信息:

再次右键单击州表,这一次输入设定的利润额

现在我们将要连接这两组集合以得到想要的配置。右键单击SalesAbove40k组->创建合并集 Create Combined Set

按下图配置填写:

这一步将销售和利润的两个条件连接(条件关联),得到必要的组合计算。结果如下:

拖拽这一新集合至地图图表的顶部,将其从一张符号地图转换为一张填充地图。

你可以随意定制上面的图表,比如变更颜色,加标签等等。

曲线图的制作和我们做过的退货趋势图一样简单。就像之前排除掉未退回组一样,这里我们已经将那些属于非扩大经营组的州排除在外了。

计算字段

超市的数据集合相当全面。它提供了非常多的信息与字段集。但就像所有数据一样,我们总有机会从中提取更多的特征。计算字段在帮你得到这些特征的同时,还可以让你对数据进行简单和复杂的计算。

什么是计算字段?

简单来说,它是一个公式,可以用于计算数据,不同的方法就像不同变量。

怎么创建计算字段?

进入分析Analysis,点击创建计算字段Create Calculated Field,弹出框图如下图所示:

在这里你就可以写自己的公式了。如你所见,Tableau提供了多种语法,不会让你失望的。你可以使用“If-Else”条件,‘Case’条件(下面我们会看到)当然还有一些常用的数学公式,我们现在就来一探究竟。

从哪里开始呢?我们还是从简单的开始,比如与订单有关的平均销售额。最适合的公式就是总销售/总订单数。如果将这一公式转换为Tableau术语,总销售额为SUM of Sales,订单总数为COUNT。

接下来我们看一下应用程序:

在计算框中,做以下变更:

为了得到累计销售收入SalesRevenue(计算字段),拖拽维度中的MeasureNames(衡量指标)至空白处,得到上面的计算结果:

在这里,你用计算字段去完成的事情就是去创建一个自己的方法去衡量指标。你可以像用销售和利润那样来用这个方法。

显然,这只是关于计算字段的一个大概情况。它们还可以用于更多更复杂的计算,我们在下一章可以见到更加复杂的应用。

参数控制

在Tableau中,下图的筛选器是一个与可视化交互的好方法:

筛选器作为一种方法,可以让你从不同的角度去看待数据,而参数也是一种很好的方法。它可以用来替代筛选器,也可以展现它自己的动态属性。

那么什么是参数呢?参数作为方程的变量,我们可以更改它,使方程每次都得到不同的结果。

让我们用一个例子来尝试理解参数的概念。目前为止我们为一些不相关的数值制作了一些不相关的图表。无论什么时候我们必须通过做不同的图表来分析不同产品的销售,利润,数量或折扣情况,这其中除去数值不同,其他内容都基本相似 。

借助参数控制我们可以用非常简单的方法来实现上面的工作,从而免去了重复劳动。

以销售为例:

接下来是利润:

仅仅需要轻轻点一下MeasureValue列表,你就可以得到不同维度的累计结果。在这里MeasureValue就是我们的参数,我们可以变更其数值。

现在我们自己来做一个参数控制。参数其实非常依赖计算字段,所以这会是检验之前所学内容的好机会:

这次我们要从空白屏幕开始。

在靠近维度的地方点击向下的箭头,并选择创建参数Create Parameter :

现在我们将要互换销售,利润,数量和折扣之间的值。填写下面的字段并点击OK

右键单击新创建的参数,并选择Show Parameter Control:

别去指望什么只要下拉菜单 可以神奇地让程序自己创建图表的魔术了, 这里我们需要完成一些计算。

目前我们只对这些参数进行了命名,但并没有实际的数值。为此,我们要创建一个计算字段。

去分析->创建计算字段 Analysis -> Create Calculated Field,将创建的字段用下面这些自我解释性的详细内容都填好

在数值当中可以找到最新创建的字段,所以首先拖拽 Order Date至列,数值名称NameOfMeasure至行。

现在可以尝试去更改数值了!

我们已经在仪表盘上创建图表了。要查看各分类的曲线,只需要将该维度拖拽至图表顶部即可:

创建其他图表也是如此。但是要拖拽NameOfMeasure参数来替代拖拽不同的数值名称NameOfMeasure至行和列中。

结束语

这篇文章到这里就结束了。不过不必担心,后续我还会发表其他关于Tableau的文章。

按照惯例我会给你一个仪表盘让你来做:

刚开始总会有一点点难度,但如果你足够努力,就一定能搞定的。当然,如果有其他疑问或是你希望我的下篇文章能够提及某一方面的内容,请留言。

祝福你们,数据开发者!

译者简介

李海明中国科学院大学在读研究生,铁人三项业余运动员,热爱音乐、艺术、生活。喜欢结交各路神仙~一起坐驰神游,一起南辕北辙

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180208G04SJG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券