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

640?wx_fmt=png&wxfrom=5&wx_lazy=1

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

作者:PAVLEEN KAUR

翻译:李海明

校对:顾佳妮

本文约5000字,建议阅读8分钟
通过这篇文章,教大家使用Tabelau软件,不用编程就可以做简单的数据分析。


介绍


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

 

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


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


640?wx_fmt=png&wxfrom=5&wx_lazy=1


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


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


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


目录


1. 多源数据处理


  • 数据连接


  • 数据融合


2. 数据的条件组合


  • 集合


3. 数据计算与粒度选择


4. 参数控制


5. 结束语


多源数据处理


数据连接


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


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


640?wx_fmt=png

 

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


640?wx_fmt=png


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

 

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

 

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


打开Tableau并倒入数据:


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


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


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


640?wx_fmt=png


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

 

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

 

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


640?wx_fmt=png


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


640?wx_fmt=png


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

 

现在我们再回到图表中:


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


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


640?wx_fmt=png


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

 

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

 

数据融合


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


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


640?wx_fmt=png


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

我们可以看到,有些咖啡分店有着与超市同样出色的业绩,比如加州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文件,将数据集一并导入:


640?wx_fmt=png


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


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


640?wx_fmt=png


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

 

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


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


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


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


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


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


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


640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png

 

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

 

数据的调节结合

 

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

 

聚合


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

 

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


640?wx_fmt=png


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


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

 

640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png


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

 

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

 

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


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

 

640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png


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


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


640?wx_fmt=png


这一步会自动分离每一个子目录(子分类)中的销售情况,而这要根据订单中的退货表是否有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组进行同样的操作。首先我们创建该表的两个副本,选中其中一个:


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


640?wx_fmt=png


  • 右键单击Returned得到:


640?wx_fmt=png


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

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

 

然后做一个曲线图:

 

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


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


640?wx_fmt=png


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

 

集合


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

 

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


640?wx_fmt=png


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


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


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


640?wx_fmt=png


  • 在字段中填入设定信息:


640?wx_fmt=png


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


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


  • 按下图配置填写:


640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png


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

 

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

 

计算字段


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

 

什么是计算字段?


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

 

怎么创建计算字段?


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

640?wx_fmt=png

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


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

 

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


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


640?wx_fmt=png


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

 

640?wx_fmt=png


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

 

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

 

参数控制


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


640?wx_fmt=png


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


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


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


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

以销售为例:


640?wx_fmt=png


接下来是利润:


640?wx_fmt=png


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

 

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


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


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


640?wx_fmt=png


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


640?wx_fmt=png


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


 

640?wx_fmt=png

 

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


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


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


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


640?wx_fmt=png


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


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


640?wx_fmt=png


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

 

结束语

 

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


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


640?wx_fmt=png


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

 

祝福你们,数据开发者!


原文链接:https://www.analyticsvidhya.com/blog/2018/01/tableau-for-intermediate-data-science/


译者简介

640?wx_fmt=jpeg

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

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。


点击文末“阅读原文”加入数据派团队~

转载须知

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

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


640?wx_fmt=png

640?wx_fmt=jpeg

点击“阅读原文”拥抱组织

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页