Tableau-研讨会-全-
Tableau 研讨会(全)
原文:
zh.annas-archive.org/md5/c8a6548a9f5e67213c529b37db6eb787译者:飞龙
前言
关于本书
由于这本关于用数据讲述故事的实际介绍,学习 Tableau 从未如此简单。*《Tableau 实战工作坊》将分析过程分解为五个步骤:数据准备、数据探索、数据分析、交互性和仪表板的分发。每个阶段都通过清晰的步骤说明所需的关键工具和技术,以及引人入胜的真实世界案例、有意义的数据和实用的练习,为你提供宝贵的动手经验。
随着你逐步阅读本书,你将学习 Tableau 的使用方法,研究如何清洗、塑形和合并数据,以及如何为任何特定场景选择最合适的图表。你将从各种来源和格式加载数据,执行数据工程以创建提供更深入洞察的新数据,并创建能够吸引最终用户的交互式仪表板。
所有概念都通过清晰、简单的解释介绍,并通过现实世界的示例场景进行演示。你将模拟真实世界的数据科学项目,例如交通违规、城市人口、咖啡店销售和航空旅行延误等用例。
在阅读完这本 Tableau 书籍之后,你将拥有自信地展示分析结果和做出数据驱动决策的技能和知识。
关于作者
苏米特·古普塔 是一位拥有超过 7 年经验的 Analytics 专业人士,其经验涵盖市场营销、销售和产品分析。作为一名顾问和培训师,他利用 Tableau 为他的组织构建了更好的数据驱动团队。苏米特擅长将大量数据转化为易于理解的仪表板,提供可操作的智能。他是 Tableau 认证协会会员,喜欢培训数据爱好者成为更好的 Tableau 开发者和认证的 Tableau 协会会员。本书是向大众推广此类知识的一次努力。
我想感谢我的家人,在本书的写作过程中给予了我极大的支持,尤其是我的超级妈妈。没有她,我今天不可能达到这样的成就。我还要感谢我的朋友们(比如皮尤什和谢什纳特,仅举几个例子)以及我的导师/领导者/经理们,他们也在推动我每天变得更好。继续前进,不断进步!
西尔维斯特·平托 现在已经使用 Tableau 几年了,目的是为了提高不同行业的业务绩效。西尔维斯特为不同的组织设计了各种业务解决方案,使用 Tableau 帮助他们大幅提升业务。他拥有 Tableau 认证,并作为顾问为各种组织设计解决方案。
舒韦塔·桑克-萨瓦莱 是 Syvylyze Analytics(发音为 "civilize")的联合创始人兼客户合作负责人,这是一家专注于视觉分析的特色商业分析公司。舒韦塔是 Tableau Desktop 合格的合作伙伴和 Tableau 认证培训师。作为印度 Tableau 领域的领先专家之一,舒韦塔将她的经验和专业知识转化为为数以百计来自各行各业客户的成功分析和服务。她在 BFSI、FMCG、零售、电子商务、咨询和专业服务、制造业、医疗保健和制药、ITeS 等多个行业领域承担了众多培训和咨询任务。她甚至有幸与知名政府和联合国机构合作。结合她分解复杂概念的能力和她在 Tableau 视觉分析平台上的专业知识,舒韦塔已成功培训了来自 85 多家公司的 1300 多名参与者。
让-查尔斯(JC)吉莱特 是一名经验丰富的商业分析师,在英国一家大型跨国公司和美国一家较小公司拥有超过 7 年的 SQL 经验,以及 5 年的 Tableau 经验。多年来,他一直在使用 Tableau 和 SQL 与同事分享他的专业知识,并教授 SQL 培训。作为一名法国公民,JC 拥有 Mines ParisTech 的执行工程硕士学位,并获得了 Tableau Desktop 认证合作伙伴资格。
在他的空闲时间,他喜欢和妻子及女儿(他为这本书的工作献给了她)一起度过时光,并参加团队手球比赛,曾参加过全国锦标赛。
我想首先将这部作品献给我的妻子和两个孩子,他们每天陪伴在我身边,无论顺境还是逆境。同时,也献给我的父母,他们教会了我核心价值观,以及我的管理者,特别是我的导师和朋友罗伯特和米格尔,他们对我意义非凡。
肯尼斯·迈克尔·切文 是美国密歇根州底特律的一名数据分析师和可视化专家。他使用 Tableau 已超过 15 年,专注于通过交互式仪表板和创意展示使复杂数据易于理解。除了在汽车行业的相关工作外,肯尼斯还使用来自棒球、政府、音乐和手工啤酒领域的开源数据进行分析和创建可视化。肯恩此前为 Packt 出版了两本书籍 – 使用 Gephi 进行网络图分析和可视化 和 精通 Gephi 网络可视化。
本书面向对象
这本书适合任何想要开始使用 Tableau 进行视觉分析的读者。如果你是 Tableau 的初学者,这个研讨会将帮助你入门。如果你已经有一些 Tableau 的经验,这本书将帮助你填补任何空白,巩固你的理解,并让你在关键工具上获得额外的实践。
关于章节
第一章,介绍:使用 Tableau 进行可视化分析,教你理解数据及其可视化元素的基本技能,用于报告和创建仪表板。
第二章,数据准备:使用 Tableau Desktop,涵盖了你在 Tableau 中创建报告所需的必要技能,如加载数据、连接、转换、混合和操作数据。
第三章,数据准备:使用 Tableau Prep,涵盖了 Tableau Prep 以及 Prep 如何帮助清理和连接不同的数据源。你将学习如何执行数据操作方法,如数据透视、分组和聚合,最后,如何将转换后的数据导出到 Tableau。
第四章,数据探索:比较和组合,扩展了你的 Tableau 知识。你将开始在 Tableau 中创建图表,包括线图、条形图和堆叠面积图。你还将学习如何创建趋势报告。
第五章,数据探索:分布和关系,涵盖了参考线和高级图表类型,如双轴图和象限图。
第六章,数据探索:探索地理数据,教你如何在 Tableau 中探索地理数据以执行基于位置的分析。
第七章,数据分析:创建和使用计算,涵盖了计算,包括数值、字符串和日期计算。你还将学习如何在计算字段中编写逻辑语句。
第八章,数据分析:创建和使用表计算,涉及表计算以及它们与计算字段的区别,以及何时使用表计算而不是计算字段。
第九章,数据分析:创建和使用级别细节(LOD)计算,涵盖了 LOD 计算,通过这些计算你将学习如何控制视图中的聚合级别。
第十章,仪表板和故事板,涵盖了使用空白画布构建交互式仪表板的基础,包括添加品牌元素、过滤器网页。最后,我们还将介绍故事板以及它们与仪表板的区别。
第十一章,Tableau 交互性:第一部分,深入探讨了 Tableau 操作顺序、过滤器、集合和参数,同时强化了其他图表和仪表板技能。
这是两篇主题的第一部分,后半部分可在网上找到。
注意
此外,还有三个附加章节(第十二章,Tableau 交互性:第二部分;第十三章,仪表板分布;和第十四章,案例研究),你可以在packt.link/SHQ4H找到。
你也可以在网上找到这个研讨会中所有活动的解决方案,链接为packt.link/CTCxk。
习惯用法
文本中的代码单词、数据库和集合名称、文件和文件夹名称、shell 命令和用户输入使用以下格式:"在顶部还有其他 文件、编辑、流程 和 服务器 菜单选项。文件 和 编辑 选项的目的不言而喻。流程 菜单可以用来运行流程,而 服务器 菜单有选项可以登录并发布流程到 Tableau Server。"
通常在章节的开头,会介绍一些关键的新术语。在这些情况下,将使用以下格式:"理解 聚合 是在使用 Tableau 时需要牢记的最基本概念。"
最小硬件要求
为了获得最佳体验,我们建议以下硬件配置:
-
处理器:双核或更好
-
内存:4 GB RAM
-
存储:10 GB 可用空间
最小软件要求
与硬件要求不同,软件要求可能难以列出,因为 Tableau 每 3-6 个月就会发布新的软件更新,并且这些新版本中会添加新功能。但考虑到本书中计划的练习/活动,我们预计至少需要以下软件:
-
Tableau Desktop 2020.1 或更高版本
-
Tableau Prep 2020.1 或更高版本
本书编写和审阅使用了 Tableau 版本 2020.1.x。尽管 Tableau 经常发布新版本,但本书中练习和活动的步骤不太可能因版本变化而改变。任何在出版时已知的差异将在文本中相应地注明。
下载本书/数据源包
GitHub 链接:packt.link/jqzD0
从 GitHub(如图所示)下载所有文件夹和数据文件,或根据需要单独下载各个章节文件。


图 0.1:GitHub 文件
设置您的环境
在开始本书之前,您需要设置 Tableau Desktop 和 Tableau Prep。在本节中,您将了解如何安装 Tableau Desktop。一旦您按照以下步骤安装了 Tableau Desktop,您还需要遵循相同的步骤下载 Tableau Prep。下载链接如下:
Tableau Desktop 2020.1: www.tableau.com/support/releases
Tableau Prep 2020.1: www.tableau.com/support/releases/prep
在您的系统上安装 Tableau
- 从
www.tableau.com/support/releases/,点击2020.1以展开列表。点击以下任意的 2020.1.XX 链接:


图 0.2:Tableau 下载/发布说明页面
- 点击 2020.1.20,然后点击加载的新页面。接下来,要么点击“下载 Tableau Desktop 2020.1.20”,Tableau 将自动检测您的操作系统,或者向下滚动到“下载文件”部分,并点击适用于您的操作系统(Windows 或 Mac)的相应下载链接。

图 0.3:Tableau 下载 2020.1.20 页面
- 下载文件后,打开您的下载文件夹,双击下载的文件。如果您使用的是 Mac(Windows 将有类似的流程),您将看到以下屏幕:

图 0.4:Tableau 桌面安装程序:简介
- 通过点击“继续”并同意软件许可协议的条款和条件来遵循提示:

图 0.5:Tableau 软件协议提示
安装软件可能需要一分钟左右的时间,并且根据您的计算机配置,您可能需要重新启动系统。
- 文件写入后,您应该看到以下成功消息。点击“关闭”以完成安装:

图 0.6:Tableau 安装完成
- 为了验证软件是否已安装,如果您使用的是 Mac,请按cmd + Space打开 spotlight 搜索并输入
Tableau。您应该在屏幕上看到以下内容。同样,如果您使用的是 Windows,请点击 Windows 按钮并输入Tableau以打开应用程序。

图 0.7:在 spotlight 搜索中搜索 Tableau
您可以通过从上面的下载链接下载软件来遵循相同的步骤安装 Tableau Prep。当您第一次加载 Tableau Desktop 或 Tableau Prep 时,您可能需要注册软件并输入许可证密钥。根据您的具体情况,您的组织可能能够提供许可证密钥,或者您可以从 14 天试用期开始探索软件。最后,如果您是学生或教师,Tableau 提供免费的 1 年许可证;了解更多信息,请访问www.tableau.com/academic/students。
联系我们
我们始终欢迎读者的反馈。
一般反馈:如果您对这本书有任何疑问,请在邮件主题中提及书名,并通过 customercare@packtpub.com 给我们发邮件。
勘误表:尽管我们已经尽最大努力确保内容的准确性,但错误仍然可能发生。如果您在这本书中发现了错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/support/errata并填写表格。
盗版: 如果你在互联网上以任何形式遇到我们作品的非法副本,如果你能提供位置地址或网站名称,我们将不胜感激。请通过版权@packt.com 与我们联系,并提供材料的链接。
如果你有兴趣成为作者:如果你在某个领域有专业知识,并且你对撰写或参与一本书籍感兴趣,请访问authors.packtpub.com。
请留下评论
通过在亚马逊上留下详细、公正的评论来告诉我们你的想法。我们感激所有反馈——它帮助我们继续制作优质产品并帮助有抱负的开发者提升技能。请抽出几分钟时间留下你的想法——这对我们来说意义重大。你可以通过点击以下链接来留下评论:packt.link/r/1800207654。
第一章:1. 简介:使用 Tableau 进行视觉分析
概述
在本章中,你将了解视觉分析以及为什么可视化你的数据很重要。你将使用 Tableau Desktop 连接到数据,并熟悉 Tableau 工作区。到本章结束时,你将非常熟悉 Tableau 界面以及一些基本的重要概念,这些概念将帮助你开始使用 Tableau。本章涵盖的主题将标志着你 Tableau 之旅的开始。
简介
在一个非常广泛的层面上,整个数据分析过程可以分解为以下步骤:数据准备、数据探索、数据分析以及分发。这个过程通常从一个问题或目标开始,然后是寻找和获取相关数据。一旦有了相关数据,你接下来需要为你的探索和分析阶段准备这些数据。你可能需要清洗和重构数据以使其处于正确的形式,也许需要将其与一些额外的数据集合并,或者通过创建一些计算来增强数据。这个阶段被称为数据准备阶段。之后是数据探索阶段。在这个阶段,你试图了解数据的组成和分布,比较数据,并确定是否存在任何关系。这一步骤给出了使用给定数据集可以进行何种分析的想法。
通常,人们喜欢通过查看数据的原始形式(即在数据准备阶段)来探索数据;然而,探索数据的一个快速且简单的方法是将其可视化。数据可视化可以揭示在原始数据中难以识别的模式。
数据探索阶段之后是数据分析阶段,在这个阶段,你分析你的数据,并发展出可以与他人分享的见解。这些见解在可视化后将使数据更容易解释,进而导致更好的决策。用非常简单的话来说,通过将数据可视化为图表和图形来探索和分析数据的过程被称为“视觉分析”。如前所述,数据可视化的想法是使决策更快。最后,数据分析周期的最后一步是分发阶段,在这个阶段,你将与可以消费这些信息并采取行动的其他利益相关者分享你的工作。
在本章中,我们将详细讨论所有这些主题,从对标题过程价值的进一步探索开始。
视觉分析的重要性
如前所述,“视觉分析”可以被定义为通过将数据可视化为图表和图形来探索和分析数据的过程。这使得最终用户能够快速消费信息,进而使他们能够做出更快、更好的决策。
在本节中,你将了解为什么数据可视化是比查看大量数据数值格式更好的评估工具。
我们中的每个人都曾在某个时候听说过这样的表达:“一图胜千言。”确实,研究发现,当数据以视觉形式呈现时,人类在识别和识别数据中的模式和趋势方面非常出色,而不是以大量数据的形式呈现在表格或电子表格格式中。
为了理解数据可视化/视觉分析的重要性和力量,让我们看看一个经典的例子:Anscombe 四重奏。Anscombe 四重奏由四个具有几乎相同统计特性的独立数据集组成,但分布和可视化却完全不同。
注意
这是由 1973 年的一位名叫弗朗西斯·约翰(Frank)·安索普的英国统计学家开发的,该数据集以他的名字命名。
让我们更深入地研究这些数据集。

图 1.1:显示 Anscombe 四重奏中使用的数据集的屏幕截图
正如你在前一张图中可以看到的,每个数据集由 11 个 X 和 Y 点组成。现在,如果你使用典型的描述性统计方法,如均值、标准差和 X 与 Y 之间的相关性来分析这些数据集,你会发现输出结果完全相同。

图 1.2:显示 Anscombe 四重奏数据描述性统计的屏幕截图
观察前一张图,你可以看到以下内容:
-
每个数据集 X 的均值为 9(精确度)。
-
每个数据集 X 的标准差为 3.32(精确度)。
-
每个数据集 Y 的均值为 7.50(精确到小数点后两位)。
-
每个数据集 Y 的标准差为 2.03(精确到小数点后两位)。
-
每个数据集 X 和 Y 之间的相关系数为 0.816(精确到小数点后三位)。
因此,通过查看上述统计推断,你会认为这些数据集是相同的,直到你决定可视化每个数据集,其结果如下所示。
这些图像显示了这些数据集作为图形可视化时的外观。现在,让我们将这些可视化并排比较,以便你可以看到这些数据集实际上有多么不同。

图 1.3:显示 Anscombe 四重奏所有四个数据集的图形表示的屏幕截图
前面的例子突出了数据可视化如何帮助揭示数据中的模式,而这些模式仅通过查看数字和/或仅进行统计分析是无法看到的。这正是弗朗西斯·安索普创建他的“四重奏”的原因。他想要反驳“数值计算是精确的,但图表是粗糙的”这种观点,这在当时在统计学家中相当普遍。
接下来,再看看一个数据可视化如何帮助我们快速发现洞察力的例子。参见图下:
![Figure 1.4: A screenshot of a grid view showing the marketing expense]
以及不同市场中的产品盈利能力
![img/B16342_01_04.jpg]
图 1.4:显示不同市场产品营销费用和盈利能力的网格视图截图
在前面的图中,你可以看到产品类型、产品、市场、营销和利润等字段的网格视图。在你所使用的数据中,营销是指为推广产品而投入的任何营销努力所花费的金额,而利润是在这些营销努力之后产生的利润。此外,这些值按产品类型、产品和市场等维度进行细分。目的是评估每个产品在不同市场中的营销和利润表现。
现在,以如上图所示的网格格式显示这些信息,会在视图中显示 84 个数字,而在这 84 个数字之间进行任何比较都将非常困难。所以,想象一下,你想要找出在哪些特定市场中,即使在投入大量营销努力之后,仍然有产品在亏损。那么你将不得不在水平和垂直方向上比较这些数字,这实际上有点繁琐。然而,让我们看看可视化这些数据是否会有所不同。参见图下:
![Figure 1.5: A bar chart comparing the marketing expense and profitability for products]
![img/B16342_01_05.jpg]
图 1.5:比较不同市场产品营销费用和盈利能力的条形图
在前面的图中,你可以看到条形的长度代表的是在营销上花费的金额,而条形的颜色则代表的是利润值。所以基本上,条形越长,在营销上的花费就越多;蓝色越深,产品的利润就越高;橙色越深,累积的损失就越大。
回顾那个图,注意在东部市场的最长条形是卡布奇诺。这意味着卡布奇诺在营销上的花费最高,但由于那个条形的颜色是橙色,你也知道它在累积损失。
这又是另一个展示数据可视化强大功能的例子。
现在你已经了解了什么是视觉分析以及为什么它很重要,让我们在下一节看看一些数据可视化工具。
Tableau 产品套件
市面上有很多工具提供各种功能和特性,您可以使用它们来可视化您的数据。在商业分析和数据可视化的领域,Tableau 由于其易用性和拖放功能,是这一领域的领先工具之一,这使得即使是商业用户也能更容易地理解他们的数据。Tableau 提供了针对不同目的的不同工具,这些工具都包含在 Tableau 产品套件中,我们将在本节中探讨这些工具。
整个套件可以分为三个部分:数据准备、数据可视化和消费或分发。参考以下图示:
![Figure 1.6:显示 Tableau 产品套件的截图
![img/B16342_01_06.jpg]
图 1.6:显示 Tableau 产品套件的截图
如前图所示,您在 数据准备层 中有 Tableau Prep,它用于清理、合并、重塑和增强您的数据。这个工具帮助您为分析和可视化准备数据。
现在,一旦您的数据准备就绪,并且处于正确的形式和结构,您将开始分析和可视化它。为此,您将使用 Tableau Desktop 或 Tableau Public。
Tableau Desktop 是您创建可视化、分析和仪表板的地方。这通常是您会花费大量时间使用的工具,因为大部分开发工作都是在 Tableau Desktop 上完成的。Tableau Public 也可以用来创建您的分析和可视化。然而,这里的问题是您无法将作品保存在本地或离线,它将必然保存在 Tableau Public 服务器上,任何人都可以查看。Tableau Public 是一个类似于 Tableau Desktop 的免费版本,通常由博客作者、记者、研究人员等处理公共或开放数据的人使用。
Tableau Public 是一个非常适合想要创建公共可视化的任何人使用的工具,但不建议处理机密数据的人使用。处理机密数据时,最好使用 Tableau Desktop。
一旦您完成了可视化构建,您可以使用 Tableau Server 或 Tableau Online 的在线方法与他人分享您的作品,或者分享您作品的离线副本,然后可以使用 Tableau Reader 打开。
Tableau Server 是一个基于本地托管浏览器和移动端的协作平台,用于发布在 Tableau Desktop 中创建的仪表板,并与您的最终用户共享。它允许您共享和在一定程度上编辑、发布仪表板,同时管理访问权限,并确保您的可视化可以通过网络安全访问。它允许您按计划频率刷新仪表板,并保持与后端数据源的实时数据连接,从而使用户能够从任何地方在线访问最新的仪表板。Tableau Server 还允许您通过 iOS 和 Android 上的应用程序查看移动平板电脑上的仪表板。另一方面,Tableau Online 是 Tableau Server 的云托管版本(或 SaaS 版本)。它带来了云服务器的功能,而没有基础设施成本。
然而,如果您想离线查看仪表板,您可以使用 Tableau Reader。这是一个免费的桌面应用程序,可以用来打开、查看和与在 Tableau Desktop 中构建的仪表板和可视化进行交互。因此,它基本上允许您进行筛选、钻取、查看数据细节,并与仪表板进行充分交互,达到作者所期望的程度。但作为读者,您不能对仪表板进行任何更改或编辑,除非作者已经构建在内。
接下来的章节以及以下章节将专注于 Tableau Desktop。您将熟悉 Tableau Desktop 的界面,了解其工作空间,并了解您如何创建可视化并构建仪表板。
这里需要注意的是,Tableau Desktop 是一个授权产品,如果您没有必要的许可证,甚至可以使用 Tableau Public 来尝试书中涵盖的示例。如前所述,Tableau Desktop 和 Tableau Public 是 Tableau 提供的两个主要开发产品,这两者之间的唯一区别是提供的数据源连接范围、本地保存文件的能力以及您工作的安全性。虽然 Tableau Desktop 提供所有这些功能,但 Tableau Public 有局限性。
然而,这两个工具的其他功能和外观感觉是相同的。下一节将探讨如何使用 Tableau 连接、分析和可视化您的数据。
请注意,本书中使用的是 Tableau Desktop 的授权版本。
Tableau Desktop 简介
现在,您已经确定并选择了 Tableau Desktop 来创建您的视觉和仪表板,让我们更深入地了解该产品、其界面和其功能。因此,一旦您下载并安装了该产品,您将能够使用产品连接到您的数据并开始构建您的可视化。
下面的截图显示了 Tableau Desktop 的登录页面:

图 1.7:Tableau Desktop 着陆页的截图
查阅以下列表以了解截图中突出显示部分的说明:
搜索数据选项;到平面文件,如 Excel 和 CSV(到文件选项);或到数据库(到服务器选项)。Tableau 对许多数据源具有本机内置的连接器,这使得与这些数据源的数据交互变得无缝。列表相当广泛,并且还在不断增长。但请注意,虽然 Tableau Desktop 提供了广泛的数据连接器列表,但 Tableau Public 只允许您连接到平面文件(到文件选项)。请参考以下截图查看 Tableau Desktop 2020.1 版本的更多...选项:

图 1.8:显示 Tableau Desktop 可以连接到的广泛数据源的截图
-
已保存的数据源选项允许您连接到之前已处理和/或修改并保存以供以后使用的源。 -
打开:本节显示了最近访问的 Tableau 文件的缩略图。开始时本节是空的,但随着您创建和保存新的工作簿,它将不断更新并显示最近打开的工作簿的缩略图。本节还可以用来固定您最喜欢的 工作簿。
-
样本工作簿:本节展示了在 Tableau 中已完成的一些样本工作。选择此处任何缩略图都将打开相关的 Tableau 工作簿。在此需要注意的是,在 Tableau 中,“工作簿”是一个包含多个工作表和/或仪表板和/或故事板的文件。
-
探索:本节包含一些快捷链接到 Tableau 网站上的培训视频和资源。
-
现在您已经熟悉了 Tableau 的着陆页,让我们继续进行以下练习,看看如何连接到数据。
练习 1.01:连接到数据源
在这个练习中,您将第一次连接到数据源,这是在 Tableau 中分析数据的第一个步骤。
您可以连接到许多类型的数据源,但为了本练习的目的,您将使用 Excel 文件——在这种情况下,Sample-Superstore.xls,它是 Tableau 内置的,包含一家公司的销售和利润数据。
执行以下步骤以完成练习:
- 从左侧着陆页的
连接下的到文件选项中选择Microsoft Excel选项。您应该会看到以下 屏幕:

图 1.9:显示连接到 Microsoft Excel 选项的截图
- 一旦您选择此选项,它将要求您浏览要连接的 Excel 文件。为此,连接到
Sample-Superstore.xls,它可以在 Documents>My Tableau Repository>Datasources 中找到,或者也可以从本章的 GitHub 仓库下载,网址为packt.link/7hnNH。请参考以下截图:

图 1.10:显示 My Tableau Repository 下的样本 - 超市.xls 数据的截图
这些数据是随产品一起提供的样本数据集。一旦您下载并安装 Tableau Desktop,您将在您的 Documents 文件夹下注意到创建了一个 My Tableau Repository 文件夹。这就是您将找到这个样本数据集的地方。
- 一旦您连接到这个数据源,您将看到 Tableau Desktop 的数据连接页面,如下截图所示。请查阅以下说明,以更好地理解您所看到的内容:

图 1.11:显示 Tableau Desktop 中数据连接页面的截图
-
Sample - Superstore.xls文件,您刚刚已建立连接。这里需要注意的是,仅仅因为您已连接到这个 Excel 文件,并不意味着您已经连接到数据。 -
Sample - Superstore.xls文件,这是实际数据所在的位置。Orders表包含来自这个零售超市的所有交易的列表,并包含订单级别的数据。这个订单级别包含日、产品和客户级别的详细信息。请参考以下图表来快速查看Orders表:

图 1.12:显示样本 - 超市.xls 订单工作表的截图
People表只包含两列:Region和Person。Person列是每个Region的经理列表。请参考以下截图来快速查看People表:

图 1.13:显示样本 - 超市.xls 的人事工作表的截图
Returns 表包含所有已退货的交易/订单列表。所以,再次强调,只有两列:Returned 和 Order ID。请参考以下截图来快速查看 Returns 表:

图 1.14:显示样本 - 超市.xls 返回工作表的截图
订单、人员和退货) 来自示例 - 超级商店.xls数据源。命名范围是 Microsoft Excel 中的一个功能,Tableau 允许您从这些预定义的 命名范围 中读取数据。要了解更多关于 Excel 中的 命名范围,请参阅以下链接:support.microsoft.com/en-us/office/define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64?ui=en-us&rs=en-us&ad=us。
- 因此,到目前为止,您已经连接到了
示例 - 超级商店.xls文件;然而,您尚未建立连接到数据,以便能够在 Tableau 中进行分析。要做到这一点,从左侧列表中拖动订单工作表并将其拖放到顶部空白区域,该区域显示为拖放工作表于此。 (如果您使用的是 2020.1 版本之后的版本,这可能会改为显示为拖放表于此。)请注意,您需要使用订单工作表而不是订单命名范围,因为命名范围中的数据可能比订单工作表中的数据有限。请参考以下截图:

图 1.15:显示如何从 Sample - Superstore.xls 的订单工作表中读取数据的截图
- 一旦您将
订单工作表拖放到拖放工作表于此区域,您将看到视图为您更新,如下面的截图所示:

图 1.16:拖放订单工作表后的视图截图
上述图示显示了将 订单 工作表拖放到 拖放工作表于此 区域后的视图。查看截图中的突出部分和下面的相应说明,以了解更多信息。
-
订单数据。这是您可以快速盘点数据并确保您有所有必要列来工作的地方。 -
连接选项。它有两个选项可供选择,Live和Extract。Live连接是当您想实时连接到数据时使用的选项。这意味着基本上任何在数据端的变化都会反映在 Tableau 中。然而,这里需要快速指出的是,Live连接选项依赖于数据源来处理所有查询,如果后端数据源是性能较慢的数据源,这可能会导致 Tableau 中的性能问题。另一方面,Extract连接是存储在 Tableau 自有格式中的数据快照,称为Tableau Data Extract,它使用文件扩展名.hyper。由于.hyper文件只包含数据的快照,因此如果您需要查看和使用更新后的数据,它将需要刷新。 -
过滤器选项,用于限制读取和使用在 Tableau 中的数据量。这适用于之前提到的Live和Extract选项。
现在您已经了解了 Tableau 的 数据连接页面,您最终可以开始使用 Tableau 来分析和可视化您的数据。
- 将
Live连接到来自Sample - Superstore.xls的Orders数据。请参考以下截图:

图 1.17:显示“转到工作表”选项的截图
- 现在,获取用于分析的数据的最终步骤是点击
Sheet1,然后从中选择转到工作表。这样,您就将数据读入 Tableau Desktop,并可以开始使用它了。请参考以下截图:

图 1.18:显示 Tableau 工作区的截图
上述截图显示了 Tableau 工作区。这是您将在此空间中创建可视化内容的区域。让我们快速浏览截图中的突出部分,以更详细地了解工作区。
-
Book1(如图所示)。然而,当您保存工作簿时,您可以分配任何您喜欢的新的名称。 -
第二部分:这是 工具栏部分,它包含各种选项,可以帮助您探索 Tableau 中可用的各种功能和功能。
-
数据面板和分析面板。数据面板显示了来自数据的字段的详细信息,这些字段被分类为维度或度量。另一方面,分析面板显示了可以在您创建的视图中执行的多种分析,例如常数线、平均值线、中位数与四分位数、总计、趋势线、预测线和聚类。最初,分析面板是禁用或灰色的,并且只有在您创建视图或可视化时才会开始出现。 -
维度和度量部分,这在技术上属于数据面板的一部分(如果您使用的是 2020.1 之后的 Tableau 版本,它可能不会显示在视图中)。维度是从数据中所有分类的、描述性的或定性的字段,例如客户名称、产品名称、订单 ID和地区。当在视图中检索时,这些字段的每个数据成员都会在视图中显示。另一方面,度量是从数据中性质为定量的字段,可以聚合为总和、平均值、最小值、最大值、标准差、方差等。当在视图中检索时,将显示聚合值。度量的例子包括销售、利润和数量等字段,这些字段将用于您的分析目的。参考以下截图以获得更多清晰度:

图 1.19:一个截图,显示了维度和度量之间的差异
-
工作表标签。在这里,您可以选择创建新的工作表、仪表板或故事板。 -
列面板、行面板、页面面板和过滤器面板,以及包含颜色面板、大小面板、文本面板、细节面板和工具提示面板的标记卡。这些面板用于更改视图的外观和细节。 -
视图部分。这是您创建可视化图表的地方。它可以被称作创建视图和可视化图表的画布。
现在您已经熟悉了 Tableau 的工作空间,您可以创建您的第一个可视化。要创建您的视图或可视化,您可以选择尝试Show Me按钮。让我们探索这两种选项。
在接下来的练习中,您将开始使用手动拖放方法,然后探索使用Show Me按钮的自动化方法。
练习 1.02:使用手动拖放创建比较图表
本练习的目的是通过手动拖放方法创建一个图表,以确定哪种船运方式在销售方面根据地区表现更好。在这种情况下,您将使用来自Sample - Superstore.xlsx的Orders数据中的Ship Mode、Region和Sales字段创建一个堆叠柱状图,另一个则是通过手动从数据面板拖动字段并将它们拖放到必要的面板中创建。
执行以下步骤以完成此练习:
-
从
数据面板的度量部分拖动Sales字段并将其拖放到列面板上。这将创建一个水平柱状图。 -
从
数据面板的维度部分拖动Region字段并将其拖放到行面板上。这将创建一个带有地区标签的水平柱状图,柱子显示销售的总和。


- 最后,为了包含船舶模式,请从“数据”面板中的“维度”部分拖动“船舶模式”字段,并将其放置在“标记”卡下的“颜色”架上。这将更新您的视图以显示带有船舶模式的堆叠条形图,如下面的截图所示:

手动拖放方法

图 1.21:使用手动拖放方法创建的堆叠条形图的截图
在这个练习中,您使用手动拖放方法创建了一个堆叠条形图,以显示在“区域”方面哪种船舶模式在“销售额”方面表现更好。正如您在前面的截图中所见,与其它模式相比,“标准等级”船舶模式似乎表现最佳。
在以下练习中,您将创建另一个销售额比较图表——但这次使用“显示我”按钮。
练习 1.03:使用自动“显示我”按钮方法创建比较图
本练习的目的是通过“显示我”按钮的自动化方法创建一个图表,以确定哪种“船舶模式”在“区域”方面的“销售额”表现更好。就像上一个练习一样,您将使用Sample-Superstore.xlsx的“订单”数据中的“船舶模式”、“区域”和“销售额”字段创建一个堆叠条形图,并使用“显示我”按钮创建另一个。然后,您将比较生成的图表以确定哪种模式有助于产生最高的销售额。
在新的工作表中,执行以下步骤以完成练习:
-
按住并保持“维度”部分的“区域”和“船舶模式”字段以及“度量”面板中的“销售额”字段。
注意
在进行多选时,需要按住CRTL键。此外,如果您使用的是苹果设备,请使用Command键代替。有关 Windows 和 macOS 的等效命令和键盘快捷方式的列表,请参阅以下链接:
help.tableau.com/current/pro/desktop/en-us/shortcut.htm。 -
一旦您选择了必要的字段,请点击位于您 Tableau 工作簿右上角的“显示我”按钮。请参阅以下截图:


图 1.22:显示“显示我”按钮的截图
一旦你点击了“显示我”按钮,你将看到当前字段选择可能产生的可视化列表,即两个维度(“区域”和“船模式”)和一个度量(“销售额”)。此外,你还会看到水平柱状图被突出显示。突出显示的图表(在以下截图中,Tableau 2020.1 版本使用橙褐色矩形边框突出显示)是基于数据可视化最佳实践的内置推荐引擎的结果。
![图 1.23:显示可能的图表和“显示我”按钮的截图]

图 1.23:显示可能的图表和“显示我”按钮的截图
你现在有两个选择:你可以继续使用 Tableau 推荐的图表,这将创建一个水平柱状图(这并不是目标),或者选择“显示我”按钮中可用并启用的其他图表(理想情况下是一个像你在上一个练习中创建的堆叠柱状图)。因此,选择紧挨着推荐图表的图表(在先前的截图中使用黑色虚线圆形边框突出显示)。这是堆叠柱状图选项,这正是你想要的。
然而,当你继续使用此选项时,你会看到两个与之前练习中创建的输出不同的地方。首先,它是一个垂直堆叠的柱状图,而不是水平柱状图,其次,你在“颜色”架中有“区域”而不是“船模式”。请参考以下截图:
![图 1.24:显示从“显示我”按钮中堆叠柱状图选项输出的截图]
从“显示我”按钮

图 1.24:显示从“显示我”按钮中堆叠柱状图选项输出的截图
现在,这些操作在技术上并没有错误,但它们并不是你在这个情况下想要的,因此你需要进行更改。
- 首先,通过在工具栏中点击交换按钮将你的堆叠柱状图的方向从垂直更改为水平,如图以下截图所示:
![图 1.25:显示交换行和列按钮的截图]

图 1.25:显示交换行和列按钮的截图
- 接下来,交换/交换你的“区域”和“船模式”字段,以便你在“颜色”架中拥有“船模式”而不是“区域”。
要这样做,请从“颜色”架中按下“区域”,以及从“行”架中按下“船模式”。确保这些选定字段的药丸颜色现在更深,因为深色表示这些字段的选取已被保留。
- 现在,点击“区域”字段或“船模式”字段的下拉菜单,并选择“交换”选项,如图以下截图所示:
![图 1.26:显示 CTRL 多选的交换选项的截图]
以及下拉方法

图 1.26:显示 CTRL 多选和下拉方法交换选项的屏幕截图
这会产生以下输出:

图 1.27:使用交换选项创建的堆叠柱状图的屏幕截图
在这个练习中,您创建了一个堆叠柱状图,使用手动拖放方法显示了哪种Ship Mode在Sales方面在Regions中表现更好。正如您在前面的屏幕截图中看到的,Standard Class的运输方式似乎比其他运输方式产生了更多的销售额。
使用 Tableau Desktop 进行数据可视化
在前面的章节中,您熟悉了 Tableau 的工作空间,并学习了如何使用手动拖放方法以及自动的“显示我”按钮创建可视化。在本书的各个章节中,您将深入了解这个工作空间,并了解工具栏和其他架子上的一些更多选项。
现在您已经对如何使用上述方法创建可视化有了基本的了解,您将现在探索数据可视化的概念以及如何在 Tableau Desktop 中使用这些概念。
理想情况下,当您展示您的分析和洞察时,您希望您的最终用户能够快速消费您所提供的信息,并更快地做出更好的决策。实现这一目标的一种方法是将信息以正确的格式呈现。每个图表、图形或可视化都有其特定的目的,选择合适的图表来回答特定的目标或商业问题尤为重要。
现在,为了能够选择合适的图表,您首先需要查看数据并回答“您需要用数据做什么?”的问题。
为了帮助您做出决定,请考虑以下因素:
-
您是否希望比较值?
-
您是否希望查看您数据的组成?
-
您是否希望了解您数据的分布?
-
您是否希望找到并理解您数据集中各个变量之间的关系?
一旦您解决了这些问题并确定了您想对数据进行什么操作,您还需要决定以下事项:
-
在任何给定时间点,您需要查看多少个变量?
-
您是否希望跟踪数据趋势?
通过这个列表,您将能够确定哪种图表最适合回答您的商业问题。为了详细说明这一点,首先将您的图表分为四个部分——即那些帮助您比较、确定组成、显示数据分布,或者帮助您在数据中找到关系的图表。
比较、组成、分布和关系通常被称为数据可视化的四大支柱,在这里有更详细的描述:
- 比较:在分析你的数据时,一个常见(如果不是最常见的)用例是比较你的数据。比较通常是在两个或多个值之间进行的。比较的一些例子包括不同地区的销售收入,特定销售代表的表现与同事相比,不同产品的盈利能力,等等。
通常,你会看到比较是在分类数据之间进行的,即维度的数据成员(例如,在“地区”是维度的情况下,而“东”、“西”、“北”和“南”是该维度的数据成员,进行跨地区的比较),但它也可以在定量数据之间进行,即跨度量(例如,销售额与利润或实际销售额与预算销售额的比较)。
另一种非常常见的比较类型是跨一段时间进行比较(例如,评估你的月度销售业绩或哪些月份对你的业务更有利,以及是否有任何需要关注的季节性趋势)。
因此,基于前面的信息,你将进一步将比较细分为跨维度项或分类数据(例如,按地区销售),随时间比较,以及跨度量或可量化数据(例如,销售额与配额的比较)。
以下列表概述了每种类型的比较应使用的典型图表:
跨维度项比较:
-
柱状图
-
堆积气泡图
-
单词云
随时间比较:
-
柱状图
-
折线图
跨度量比较:
-
枪图
-
柱状图
- 组成:在分析你的数据时,另一个常见的用例是找出每个数据成员对整体的贡献率或比例。所以基本上,在总价值中,每个数据成员的贡献是多少?这通常被称为部分与整体组成,它帮助我们了解每个单独的部分是如何构成整体的。例如,在总销售额中,哪个类别贡献最大?或者你的总销售额按地区如何分解?等等。
通常,你会展示你数据的静态快照组成(例如,在特定时间点,你的市场份额以及竞争对手的市场份额),或者你可能还希望在一定时间内跟踪这些信息(例如,你的和你的竞争对手的市场份额随时间的变化)。这两种视角都很重要,可以提供一些非常有价值的关于你表现的见解。
因此,基于这些信息,你将进一步将组成细分为组成(快照/静态)和随时间变化的组成。
以下列表概述了每种类型组合应使用的典型图表:
组合(快照/静态):
-
饼图
-
堆积条形图
-
树状图
随时间组合:
-
堆积条形图
-
面积图
- 分布:当你想要在数据中找到模式、趋势、聚类、异常值或异常时,找到数据的分布是很重要的——例如,如果你想了解员工在年度评估周期中的表现(即哪些员工或多少员工表现不佳,哪些或多少员工达到预期,以及哪些或多少员工超出预期)。分布的另一个例子是对考试中学生的表现进行评估或确定制造过程中的缺陷频率。
因此,根据这些信息,你将进一步将分布细分为单一度量的分布和两个度量之间的分布。
以下列表概述了每种类型分布应使用的典型图表:
单一度量的分布:
-
箱线图
-
直方图
两个度量之间的分布:
- 散点图
- 关系:寻找和理解数据不同变量之间的关系、依赖性、相关性或因果关系是数据分析的另一种方法。在分析数据时,重要的是确定数据变量之间是否存在任何依赖性(一个变量是否对另一个变量有影响,以及这种影响是正面还是负面,例如营销支出对销售利润的影响或根据温度变化而增加或减少的保暖服装销售)。因此,根据这些信息,你将进一步将关系细分为两个度量之间的关系和多个度量之间的关系。
以下列表概述了每种类型关系应使用的典型图表:
-
两个度量之间的关系:散点图
-
多个度量之间的关系:大小和颜色的散点图
现在你已经理解了比较、组合、分布和关系的概念,以及每种情况应选择哪些图表,你将尝试了解如何在 Tableau 中创建这些图表。上述所有场景和图表将在接下来的章节中更详细地解释。
除了上述用例或场景之外,您还可能想探索您数据的地域性方面(即,如果您数据中包含任何地理信息)。这可能意味着数据在国家级、州级、市级,甚至邮政编码级别。创建地理地图来展示这些地理数据是探索和可视化数据的另一种方式,因为地图上可视化地理数据可以帮助我们突出显示地理范围内的事件或发生情况,并可能揭示一些隐藏的空间模式或执行邻近度分析。
注意
关于选择正确图表的更多信息,请参阅以下文章:www.tableau.com/learn/whitepapers/which-chart-or-graph-is-right-for-you。
保存和共享您的作品
在使用 Tableau 时的另一个重要讨论点是如何保存您的文件并与他人共享。如您所知,Tableau 是一个交互式工具,它允许用户使用工具内提供的功能过滤、钻取和切片数据。现在,当涉及到与他人共享您的工作时,有些人可能希望最终用户能够灵活地操作报告并使用提供的交互性,而其他人可能只想让最终用户拥有一个静态的信息快照,不提供任何交互性。此外,有些人可能希望与最终用户共享整个仪表板,而其他人可能只想共享单个可视化。
所有这些场景都可以在 Tableau 中处理。以下列表将详细说明这些选项,将它们分为两部分:静态快照和交互式版本:
静态快照:以下是在您想要保存和共享工作的静态快照时可以选择的选项列表:
- 从工具栏或
Worksheet > Copy > Image选项或Worksheet > Export > Image选项。请参阅以下截图:

从工具栏菜单

图 1.28:显示工具栏菜单中“Worksheet > Copy > Image”选项的截图

从工具栏菜单

图 1.29:显示工具栏菜单中“Worksheet > Export > Image”选项的截图
Copy > Image选项允许您将单个视图作为图像复制,然后根据需要将其粘贴到另一个应用程序中,而Export > Image选项则允许您直接将视图导出为图像,而不是进行复制和粘贴操作。
上述截图显示了仅复制或导出单个工作表(即单个可视化)的选项。然而,如果您希望将整个仪表板保存为图像,那么您将使用工具栏中的“仪表板 > 复制图像”或“仪表板 > 导出图像”选项。请参考以下截图:

图 1.30:显示将整个仪表板保存为图像的选项
- 通过复制粘贴数据到
.csv文件或将数据作为 Microsoft Access 文件导出,使用工具栏菜单中的“工作表 > 复制 > 数据”选项或“工作表 > 导出 > 数据”选项。请参考以下截图:

图 1.31:显示“工作表 > 复制 > 数据”选项的截图

图 1.32:显示“工作表 > 导出 > 数据”选项的截图
.csv或.mdb文件,这是 Microsoft Access 格式。然而,当你想要将数据存储为 Excel 输出时,你将不得不使用工具栏菜单中的“工作表 > 复制 > 交叉表”选项或“工作表 > 导出 > 交叉表到 Excel”选项。请参考以下截图:

图 1.33:显示“工作表 > 复制 > 交叉表”选项的截图

图 1.34:显示“工作表 > 导出 > 交叉表到 Excel”选项的截图
- 以
PNG格式导出为单独的幻灯片。要导出为 PowerPoint,请从工具栏菜单中选择“文件 > 导出为 PowerPoint”选项。请参考以下截图:

图 1.35:显示“文件 > 导出为 PowerPoint”选项的截图
- 从工具栏菜单中选择“文件 > 打印到 PDF”选项。请参考以下截图:

图 1.36:显示“文件 > 打印到 PDF”选项的截图
练习 1.04:将您的作品保存为静态快照-PowerPoint 导出
在上一节中,您探索了选择您作品静态输出的不同选项。在本练习中,您将导出或保存您的作品为 PowerPoint 导出。为此,您将继续使用上一练习中创建的“船运方式”、“地区”和“销售额”堆叠柱状图。这个练习将帮助您了解如何将您的分析保存为交互式版本并将这些作品发布到不同的平台——作为 Tableau 开发者,您将需要经常这样做。
您将继续使用 Sample Superstore 数据集来完成此练习。
完成此步骤的方法如下:
-
确保您有之前创建的堆叠柱状图。如果没有,请首先根据前面练习中提到的步骤重新创建堆叠柱状图,即练习 1.03,使用自动“显示我”按钮方法创建比较图表。
-
一旦准备好堆叠柱状图,请点击工具栏中的“文件”选项并选择“导出为 PowerPoint”选项。请参考以下截图:

图 1.37:显示“文件 > 导出为 PowerPoint”选项的截图
- 在弹出窗口中保留默认选项,然后点击“导出”按钮并将文件保存到您希望的位置。最后,将文件命名为“我的 PowerPoint 导出.pptx”。请参考以下截图:

图 1.38:显示 PowerPoint 导出的截图
这将把您的输出保存为.pptx文件,稍后可以在 Microsoft PowerPoint 应用程序中打开。
交互式版本:以下是在您想要保存和分享您的工作的交互式版本时可以选择的选项列表:
.twb.twbx:为了将您的视图保存为交互式视图,您需要将您的 Tableau 文件保存为以下格式。
.TWB:这是将文件保存为Tableau 工作簿时使用的文件扩展名,它是一种专有文件格式。.twb是在尝试保存任何 Tableau 工作簿时的默认文件扩展名。这些.twb文件是某种工作进度文件,需要不断访问数据,由于这些文件需要持续连接到数据,除非您有 Tableau Desktop 和访问创建此.twb文件所需的数据,否则无法打开文件。因此,如果您希望与他人共享此.twb文件,请确保他们有权访问数据;如果没有,则必须将数据源文件提供给它们。要将文件保存为.twb,请从工具栏菜单中选择“文件 > 保存为”选项。
这将打开一个新窗口,允许您保存文件。请确保选择“Tableau 工作簿 (.twb)”选项。请参考以下截图:

图 1.39:显示“文件 > 保存为 > Tableau 工作簿 (.twb)”选项的截图
TWBX:这是保存文件为Tableau 打包工作簿时使用的文件扩展名,其中包含创建这些视图所使用的视图和数据副本。由于数据副本与已创建的视图捆绑在一起,它允许最终用户在即使他们没有直接访问用于分析的基础数据时也能访问和交互文件。
此外,由于数据副本与视图捆绑在一起,文件中看到的数据不是实际实时数据,而是在某个时间点的数据静态快照,可以根据需要随时刷新。
要将文件保存为.twbx,请从工具栏菜单中选择File > Save As选项。这将打开一个新窗口,允许您保存文件。请确保选择Tableau Packaged Workbook (.twbx)选项。请参考以下截图:
![图 1.40:显示“文件 > 保存为 > Tableau Packaged Workbook (.twbx)”选项的截图]
Tableau Packaged Workbook (.twbx)选项

![图 1.40:显示“文件 > 保存为 > Tableau Packaged Workbook (.twbx)”选项的截图]
要将文件保存为Tableau Packaged Workbook (.twbx),您甚至可以从工具栏菜单中选择File > Export As Packaged Workbook选项。请参考以下截图:
![图 1.41:显示“文件 > 导出打包工作簿”选项的截图]

图 1.41:显示“文件 > 导出打包工作簿”选项的截图
- 从工具栏菜单中选择
Server > Publish Workbook选项。请参考以下截图:
![图 1.42:显示“Server > Publish Workbook”选项的截图]

![图 1.42:显示“Server > Publish Workbook”选项的截图]
- 从工具栏菜单中选择
Server > Tableau Public选项。请参考以下截图:
![图 1.43:显示“Server > Tableau Public”选项的截图]

![图 1.43:显示“Server > Tableau Public”选项的截图]
在以下练习中,您将学习如何将工作保存为打包的 Tableau 工作簿。
练习 1.05:将您的作品保存为 Tableau 交互文件–Tableau 打包工作簿
在上一节中,您看到了选择您工作交互版本的不同选项。本练习的目的是将您的工作导出或保存为 Tableau Packaged Workbook (.twbx)。为此,您将继续使用上一练习中创建的Ship Mode、Region和Sales的堆叠条形图。
完成以下步骤:
-
确保您手头有之前创建的堆叠条形图。如果您没有手头上的,那么首先根据练习 1.03中提到的步骤重新创建堆叠条形图,即使用自动“显示我”按钮方法创建比较图。
-
一旦准备好堆叠条形图,请点击工具栏中的
File选项,并选择Export Packaged Workbook选项。请参考以下截图:
图 1.44:显示 File > Export Packaged Workbook 选项的截图
- 将文件保存到您希望的位置,并将其命名为
My Tableau Packaged Workbook.twbx。请参考以下截图:
图 1.45:显示 PowerPoint 导出的截图
这将把您的输出保存为 .twbx 文件,稍后可以在 Tableau Reader 或 Tableau Desktop 中打开。
在下一节中,您将通过完成一个活动来练习您在本章中学到的新技能。
活动一.01:识别和创建查找数据中异常值的适当图表
在此活动中,您将识别并创建适当的图表来查找数据中的异常值。所使用的数据集包含两个度量——即 Profit(利润)和 Marketing(营销)。Marketing 指的是在营销活动中花费的金钱,而 Profit 是您所获得的利润。您需要比较不同产品和不同市场中的 Marketing 和 Profit(即两个维度和两个度量)。
需要识别的异常值如下:
-
高营销和低利润
-
低营销和高利润
您将使用来自 Sample-Coffee Chain.mdb 数据集的 CoffeeChain 查询 表。数据可以从本书的 GitHub 仓库下载,链接为 packt.link/MOpmr。
正如其名所示,该数据集包含有关虚构咖啡连锁店的信息。
执行以下步骤来完成此活动:
-
使用 Tableau 数据连接窗口中的 Microsoft Access 选项选择 Sample-Coffee Chain.mdb 数据。
-
使用来自 Sample-Coffee Chain.mdb 数据的 CoffeeChain 查询表。
-
当查看 两个度量(即
Profit和Marketing)和 两个维度(即Product和Market)时,识别出最合适的图表来查找您的 异常值。您要查找的异常值是 高营销和低利润 和 低营销和高利润。(提示:参考讨论数据可视化四个支柱的章节,并选择有助于您查找异常值的图表。) -
在确定哪个图表最合适后,使用 自动 的
Show Me按钮方法 创建该图表。 -
导出 您创建的视图为 PowerPoint 图片。
-
最后,将工作簿作为 Tableau Packaged Workbook (
.twbx) 保存在您的桌面上,并将文件命名为My first Tableau view。注意
此活动的解决方案可在以下链接找到:
packt.link/CTCxk。
摘要
在本章中,您学习了可视分析和数据可视化的定义及其重要性。当选择数据可视化工具时,您被提供了几个评估点,并探索了 Tableau 的产品套件。在确定 Tableau Desktop 是分析并可视化您数据的最佳平台选择后,您了解了如何利用它来连接数据,并熟悉了 Tableau Desktop 的工作空间。您还考虑了各种数据可视化的场景,确定了针对特定任务应使用哪些图表,并学习了如何保存和与他人共享您的作品。
在下一章中,您将了解如何构建您之前识别出的各种图表。您还将学习如何使用 Tableau Prep 和 Tableau Desktop 准备您的数据以进行分析。
第二章:2. 数据准备:使用 Tableau Desktop
概述
在本章中,你将学习如何使用 Tableau Desktop 中的各种数据准备工具,并使用各种选项连接不同的数据源。这将使你具备执行数据操作活动、数据转换和数据混合以及管理各种数据源所需的知识。到本章结束时,你将能够提取和过滤数据,并为数据的整洁展示使用别名。
简介
通常,用于 Tableau 可视化的数据源存储在单独的表或文件中。一个非常常见的例子是在电子商务网站上在线订购。订单信息和客户信息在网站数据库中分别存储。然而,当基于之前的购买提供建议时,网站可能会合并信息以显示统一视图。这是一个数据连接的简单示例,这是可以使用数据准备技术实现的最常见场景之一。除了数据连接外,通常还需要执行数据操作活动,如对使用的数据进行分组和添加计算。在本章中,你将学习如何使用所有这些技术将数据拉入 Tableau 以进行有效的分析和可视化。
连接到数据源
对于任何可视化,你需要有一个包含你希望显示的所有信息的底层数据源。这是任何数据可视化任务的第一步。
当你打开 Tableau Desktop 时,首先看到的是 连接 面板。在这里,你可以连接到各种数据源并执行与数据处理相关的各种任务,这些内容你将在本章学习。以下图显示了启动 Tableau Desktop 时出现的屏幕:


图 2.1:启动 Tableau Desktop 的起始屏幕
根据版本的不同,这个屏幕可能看起来略有不同,但大部分应该保持这种方式:你可以观察到你可以连接到多种文件选项,如 Excel、文本和 JSON 文件。你还可以连接到基于服务器的数据源,如 MySQL 和 Oracle。已保存的数据源 提供了与 Tableau Desktop 一起可用的示例数据源。
在接下来的练习中,你将连接到一个名为 Sample - Superstore 的 Excel 文件,该文件与 Tableau Desktop 一起提供。该文件包含一个 Orders 工作表,其中包含基于订单 ID、订单类别、运输方式和客户详情等属性的订单信息。它还有一个 Returns 工作表,其中包含已退回的订单。你将使用所有这些数据在本章中进行各种操作,并在 Tableau Desktop 中可视化数据。
练习 2.01:连接到 Excel 文件
在这个练习中,你将在 Tableau 中连接到你的第一个数据源,即Sample - Superstore Excel 文件。如果你已经按照第一章,Tableau 简介中提到的安装了 Tableau,那么这个文件将自动对你可用。它包含三个工作表,包括存储在Orders工作表中的订单级别信息,存储在People工作表中的客户信息,以及存储在Returns工作表中的订单退货信息,并且可以从本章的 GitHub 存储库中快速下载packt.link/14u86。在继续练习之前,请确保在你的系统上下载此文件。
执行以下步骤以完成此练习:
- 在
Connect面板下,选择Microsoft Excel选项。

图 2.2:连接到 Microsoft Excel
- 这将打开文件菜单,你可以从文件资源管理器中选择 Excel 文件。导航到你本地保存此文件的位置,然后选择打开
Sample-Superstore.xls文件。文件加载后,你会看到以下屏幕:

图 2.3:文件导入屏幕
- 将鼠标悬停在表格上以获取
View data选项(如图所示)并预览数据:

图 2.4:查看底层工作表的数据
以下图显示了数据预览:

图 2.5:显示数据预览的查看数据窗口
-
现在,将
Orders工作表拖放到Drag sheets here区域。这也被称为画布。 -
现在,工作表应该已经导入到 Tableau 中。预览数据,如图所示:
![图 2.6:导入工作表的数据预览
![img/B16342_02_06.jpg]
图 2.6:导入工作表的数据预览
因此,你已经连接并导入了 Tableau 中的数据。
- 将鼠标悬停在
Sheet 1上,你可以看到激活的Go to Worksheet选项,这意味着你可以导航到Sheet 1并开始创建可视化。

图 2.7:转到工作表弹出窗口
数据导入后,你可以通过点击该选项开始可视化开发,正如你将在课程中看到的。
在这个练习中,你看到了如何连接到 Excel 文件。Tableau 还允许你连接到存储在服务器上的数据。在下一节中,你将学习如何做到这一点。
连接到服务器数据源
这里,你将与服务器数据源中的 Microsoft SQL Server 连接。请注意,安装和维护基于服务器的数据源的概念超出了本章的范围。然而,理想情况下,在一个商业项目中,数据大多存储在服务器上。因此,了解如何连接到这些数据源非常重要。
以下步骤将帮助你连接到基于服务器的数据源:
- 在“连接”面板下,选择
Microsoft SQL Server选项,如图所示:

图 2.8:服务器连接输入屏幕
这里,你需要输入所需的信息,例如服务器名称和认证方法。这些详细信息可以从你的数据库管理员那里获得。
-
点击“登录”。你将获得与图 2.5中看到的类似预览屏幕。之后的步骤与 Excel 连接时的步骤相同。
注意
这里最常见的问题之一是,有时连接到数据源的驱动程序没有安装。这可以通过从
www.tableau.com/support/drivers下载和安装驱动程序来轻松解决。
在本节中,你连接到了基于服务器的数据源。下一节将介绍 Tableau 中不同类型的连接,以结合来自多个数据源的数据。
Tableau 中的各种连接
很常见的情况是,你使用的数据将作为单独的表存储以提高效率。可能有一些字段在表中是共同的,可以用来连接数据源。
例如,假设你是一名银行贷款经理,想要评估最适合贷款的客户档案。在这里,基于客户提供的资料,例如薪资详情和工作经验,你还需要获取他们的财务历史信息,如之前的贷款、未偿还贷款或任何违约情况。这类信息可以通过使用客户 PAN 作为不同数据源之间的共同信息,从他们的 Experian 评分中获取。这就是在许多日常场景中通常如何使用连接。你将在 Tableau 中学习这些连接及其不同类型。
连接类型
Tableau 提供四种类型的连接,如下所示:
- 内部:在两个表之间的内部连接中,你只能将两个表中匹配的值组合到结果表中。例如,考虑以下表。当你使用内部连接将表 A 和表 B 连接起来时,只有公共值将作为结果表的一部分:

图 2.9:表 A 和表 B 之间的内部连接
- 左连接:左连接将左表的所有值与右表匹配的值结合起来。如果没有匹配的值,这些行将在结果表中包含空值。在以下示例中,当你使用左连接将表 A 和表 B 连接起来时,表 A 的所有值和表 B 的公共值将包含在结果表中:

图 2.10:表 A 和表 B 的左连接
- 右连接:这是左连接的相反。右连接将右表的所有值与左表匹配的值结合起来。如果没有匹配的值,这些行将在结果表中包含空值。考虑以下表格。当你使用右连接将表 A 和表 B 连接起来时,表 B 的所有值和表 A 的公共值将包含在结果表中:

图 2.11:表 A 和表 B 的右连接
- 全外连接:在两个表的全外连接中,你可以将左表和右表的所有值合并到一个结果表中。如果任何表中的值不匹配,这些行将在结果表中包含空值。
考虑以下表格。在这里,当你使用内连接将表 A 和表 B 连接起来时,只有公共值将包含在结果表中:

图 2.12:表 A 和表 B 的全外连接
-
并集:在并集中,你将具有相似列结构的两个或多个表合并成一个单一的结果表。并集是在你只想将数据追加到具有相似列的其他数据下方而不是进行连接时执行的。并集的一个非常常见的例子是当你有两个包含相似列但分别在不同年份维护的表时,例如,将多年订单信息合并到一个综合数据集中。
-
考虑以下表格,例如。在这里,当你创建表 A 和 A1 的并集时,你会得到一个包含 A 和 A1 两个表值的单一表:

图 2.13:表 A 和表 B 的并集
你将在以下练习中详细了解这些连接类型。
练习 2.02:创建内连接数据集
作为一名分析师,你可能会遇到需要显示两个表之间公共记录的场景。本练习旨在展示如何在 Tableau 中将两个不同的工作表合并成一个单一的数据源。
你将使用内连接将Orders表与People表连接起来。通过这样做,你将能够识别出People表中的客户记录以及Orders表中的订单信息,这将帮助你了解客户的购买偏好。
执行以下步骤以完成此练习:
-
按照与 练习 2.01 中相同的方式将
Sample – Superstore数据集加载到您的 Tableau 实例中。 -
首先将
Orders表从Sheets区域拖到Drag Sheets here区域,然后是People表。或者,要添加这些表,您可以双击它们,它们将自动添加到画布区域。Tableau 将使用内连接自动连接这两个表,如图所示:
![图 2.14:使用内连接进行数据连接
![图片 B16342_02_14.jpg]
图 2.14:使用内连接进行数据连接
- 点击
Join符号打开Join菜单:
![图 2.15:内连接属性
![图片 B16342_02_15.jpg]
图 2.15:内连接属性
注意连接数据的不同方式。默认情况下,Tableau 在公共字段名称上执行内连接:
![图 2.16:各种连接选项
![图片 B16342_02_16.jpg]
图 2.16:各种连接选项
注意
这些说明和图像基于 Tableau 版本 2020.1。如果您使用的是 Tableau 的后续版本,例如 2021.4,此过程可能看起来相当不同,甚至可能需要额外步骤。您可以在以下 URL 找到有关此内容的额外指导:help.tableau.com/v2021.4/pro/desktop/en-gb/datasource_relationships_learnmorepage.htm
- 如果没有公共名称,请手动选择列以启用连接。由于您正在连接
Orders和People表,请在Orders中选择Customer Name列,在People中选择Person列进行连接。首先,取消选择 Tableau 自动选择的Region,为此,请点击Region并从下拉菜单中选择Customer Name,如图所示:
![图 2.17:更改连接列
![图片 B16342_02_17.jpg]
图 2.17:更改连接列
![图 2.18:内连接的最终结果
![图片 B16342_02_18.jpg]
图 2.18:内连接的最终结果
- 对
People表重复相同的操作,并选择Person作为连接列。您的连接列应如下所示:
![图 2.19:订单和人员表的预览数据
![图片 B16342_02_19.jpg]
图 2.19:订单和人员表的预览数据
现在是验证结果的时候了。这可以在底部区域的网格屏幕中观察到。
您可以看到连接数据集中只有 58 行。在这里,只有与 People 表的 Person 列匹配的 Orders 表的 Customer Name 列的值将返回到最终数据集中。由于 Person 表只有四个值,因此只有与这四个值匹配的 Customer Name 列的值将从 Orders 表中返回。
在此练习中,您使用了内连接并分析了使用此连接类型返回的结果。接下来,您将了解左连接类型。
练习 2.03:创建左连接数据集
在这个练习中,你将使用左连接将Orders表与People表连接起来。左连接的目标是验证People表中存在多少客户信息。这将帮助你识别和更新People表,以便你可以扩展客户数据库,从而推动更好的销售:
![图 2.20:订单和人员表的连接界面
![图片 B16342_02_20.jpg]
图 2.20:订单和人员表的连接界面
-
重复上一个练习中的步骤,将
Orders和People表拖到画布上。完成后,你应该会看到以下连接选项: -
将连接类型更改为
Left:
![图 2.21:选择左连接
![图片 B16342_02_21.jpg]
图 2.21:选择左连接
- 现在,在数据预览(如图所示),向右滚动。你会看到来自
People表的两个列,Person和Region。使用排序图标对值进行排序,如图所示:
![图 2.22:分析左连接结果
![图片 B16342_02_22.jpg]
图 2.22:分析左连接结果
- 滚动以查看如果
Customer名称与Person列中的任何值不匹配会发生什么。
![图 2.23:连接结果中的空值
![图片 B16342_02_23.jpg]
图 2.23:连接结果中的空值
你会观察到没有找到匹配的行会被替换为一个null值,这意味着Person表不包含这些客户的信息。这意味着你可以将此客户信息添加到People表中以提高数据质量。
在这个练习中,你学习了如何执行左连接以及两个表之间如何匹配数据。接下来,你将了解右连接类型。
练习 2.04:创建右连接数据集
在这个练习中,你将使用右连接将Orders表与People表连接起来。考虑一个场景,其中People表包含所有之前购买过你公司产品的客户,你希望通过Orders表中的信息获取客户购买产品的完整列表。这将帮助你根据客户的过去购买了解他们的购买习惯。
完成此练习的步骤如下:
- 将
Orders和People表拖动到画布上,与上一个练习中的方法类似,以便你可以在屏幕上看到以下内容:
![图 2.24:订单和人员表的连接界面
![图片 B16342_02_24.jpg]
图 2.24:订单和人员表的连接界面
- 选择如图所示的
Right连接:
![图 2.25:选择右连接
![图片 B16342_02_25.jpg]
图 2.25:选择右连接
-
现在,在数据预览中,向右滚动。你会看到来自
People表的Person和Region列。使用排序图标对值进行排序,如图所示: -
![图 2.26:分析右连接结果
![img/B16342_02_26.jpg]
图 2.26:分析右连接结果
你会观察到People表中的行包含有关有历史订单的顾客的信息。这现在可以帮助你分析一个人倾向于经常购买哪些产品,相应地,你可以向他们推荐类似的产品,以实现更精准的销售策略。
在这个练习中,你在两个表上执行了右连接,并看到了如何使用右连接的结果来分析数据。接下来,你将了解全外连接。
全外连接将合并两个连接表的查询结果到一个单一的数据集中。在 Tableau 中,你可以使用连接属性并将连接类型更改为Full Outer。
![Figure 2.27: Selecting the Full Outer join
![img/B16342_02_27.jpg]
图 2.27:选择全外连接
接下来要介绍的是联合操作。在联合操作中,新表将在最终数据集中追加到前一个表的下方。通常,联合用于当你想要结合具有共同列结构的数据集时。例如,可以使用联合将 2021 年的订单信息与 2020 年的订单信息结合起来,以获得统一的数据集。
在下一个练习中,你将学习如何在 Tableau 中实现联合。
练习 2.05:使用联合创建组合数据集
考虑一个与沃尔玛或亚马逊等在多个地区运营的大型零售商相关的场景。在这种情况下,在地区级别存储数据更有意义,以便它可以包含针对该特定地区的定制产品。如果你要比较不同地区之间的表现,你需要将这些不同的数据源合并到一个数据集中。这就是联合概念发挥作用的地方。
在这个练习中,你将使用按地区划分的Orders表。不同地区的文件与Orders表具有相似的列结构,但根据地区被分到不同的工作表中,如下图所示:
![Figure 2.28: Input data for the Orders table preview stored as different tabs
![img/B16342_02_28.jpg]
图 2.28:以不同标签存储的Orders表输入数据预览
你有两个地区的相关数据:Central和West。你可以通过以下步骤实现联合,将这两个地区合并成一个单一的数据集:
- 在你的本地机器上保存文件。使用保存文件的路径中的
Connect选项加载UnionExcel 文件,就像之前的练习一样。文件导入后,你应该会看到以下屏幕:
![Figure 2.29: Orders table for the Central and West regions
![img/B16342_02_29.jpg]
图 2.29:中央和西部地区的Orders表
- 双击
New Union选项以打开Union弹出窗口,如下图所示:
![Figure 2.30: New Union popup
![img/B16342_02_30.jpg]
图 2.30:新联合弹出窗口
- 将两个订单表拖动到
联合弹出窗口中,如下所示:
![图 2.31:在联合中添加表]
![img/B16342_02_31.jpg]
图 2.31:在联合中添加表
- 点击
确定将联合添加到数据网格中。
你现在可以预览底部部分的数据。Tableau 会将两个表中的数据合并为一个单一的数据源。
![图 2.32:联合数据预览]
![img/B16342_02_32.jpg]
图 2.32:联合数据预览
- 将数据预览向右滚动。你会看到两个额外的列——即
Sheet和Table Name。Sheet表示这些数据属于哪个 Excel 文件的工作表,而Table Name指的是 Tableau 中的表名。这可以用来快速识别哪些列来自哪些工作表和表。
![图 2.33:联合结果中的表识别列]
![img/B16342_02_33.jpg]
图 2.33:联合结果中的表识别列
在这个练习中,你学习了如何执行多个数据源的联合。
在所有前面的练习中,你只连接了两个数据源。你可以添加超过两个数据源。你只需在连接连接中指定表如何相互连接即可。
![图 2.34:使用两个以上表进行连接]
![img/B16342_02_34.jpg]
图 2.34:使用两个以上表进行连接
前面的图示显示了在Orders表上与People和Returns表进行联合的示例。如果Returns和People表之间存在公共字段,你也可以根据你的要求将这两个表联合起来。
这就完成了在 Tableau 中连接多个表的各种方法,并结束了关于将多个来源的数据组合在一起的各种方法的讨论。以下各节将处理准备你的数据以进行你所需任务的工作。
数据面板中的数据转换
一旦你完成数据的合并,你可能还需要进行一些数据调整,例如重命名某些列或限制用于你的可视化的数据。这些都是一些常见的数据转换示例。
数据转换是准备数据以进行有效可视化的关键步骤。在本节中,你将了解一些常用的数据转换方法。特别是,你将了解以下内容:
-
数据解释器
-
重命名数据源
-
实时和提取连接
-
过滤器
-
数据网格选项
-
自定义 SQL
以下各节将逐一定义这些内容。
数据解释器
数据解释器是 Tableau 中可用的一项选项,通过删除标题、表头和额外的空行,仅提取 Excel 数据源的实际行和列。
你有时可以添加额外的行来描述工作表包含的数据类型,或者添加一些空列以提高工作表的可读性。考虑以下示例。假设你在Sample - Superstore文件中添加了某些注释,如下所示:
![图 2.35:理解数据解释器]
![img/B16342_02_35.jpg]
图 2.35:理解数据解释器
从数据可视化的角度来看,第 1 到 3 行是无意义的,因为它们不属于实际数据,仅仅是标题。Tableau 可以通过使用数据解释器自动删除这些行。
可以通过选择使用数据解释器选项来启用数据解释器:
![图 2.36:启用数据解释器]
![图片 B16342_02_36.jpg]
![图 2.36:启用数据解释器]
启用后,数据解释器将为您提供查看结果选项。单击查看结果将打开一个 Excel 表格,显示数据解释器所做的所有更改,如图所示:
![图 2.37:查看数据解释器的结果]
![图片 B16342_02_37.jpg]
![图 2.37:查看数据解释器的结果]
重命名数据源
您可以在连接屏幕上通过单击它并输入您选择的名字来重命名数据源。
![图 2.38:重命名数据源]
![图片 B16342_02_38.jpg]
![图 2.38:重命名数据源]
当处理数据源时,您希望快速识别您正在处理哪些表。重命名表允许您为它们提供自定义名称,这样就可以更容易地与它们一起工作。
实时和提取连接
这是 Tableau 数据可视化中的一个非常重要的概念。此选项决定了数据如何连接到可视化中。
实时连接允许 Tableau 工作表根据底层数据源中进行的任何更改实时更新。当数据必须实时更新时,例如股市数据,这可能是一个很好的解决方案。
然而,当在实时连接中开发可视化时,数据库将查询与数据相关的任何更改。这可能会消耗更多时间。
Tableau 数据提取(TDEs)或提取,是一种压缩和优化的方式,将所有源数据带入 Tableau 的内存中。TDEs 提高了数据查询的效率,这往往增加了在可视化中处理数据以及执行用户交互活动(如对数据进行过滤和排序)时的执行速度。
当在提取连接中开发可视化时,数据库也会提取到 Tableau 的本地内存中。因此,任何可视化开发都将比实时连接快得多。
练习 2.06:创建数据提取
在前面的练习中,您使用实时连接连接到数据。现在,您将为其创建一个提取。以下步骤应执行以创建Orders表的数据库提取:
-
将
Sample – Superstore数据集加载到您的 Tableau 实例中,就像之前的练习中所做的那样。 -
将
Orders表拖到画布上。 -
选择以下图所示的
提取选项:
![图 2.39:创建提取]
![图片 B16342_02_39.jpg]
![图 2.39:创建提取]
- 完成后,点击页面底部的
Sheet 1导航到该工作表。![图 2.40:导航到工作表![img/B16342_02_40.jpg]()
图 2.40:导航到工作表
- 这将打开一个弹出窗口以在本地保存提取。选择您选择的任何位置以保存提取。

图 2.41:提取创建和保存
点击“保存”将创建提取并将其保存在指定的位置。还有一个“编辑”选项,可以用来编辑提取的属性。您将在下一节学习这些内容。
- 如果您的数据发生变化,请使用“编辑”或“刷新”选项刷新您的提取,如图所示:

图 2.42:提取编辑和刷新选项
在这个练习中,您使用 Tableau Desktop 创建了一个提取。
提取属性
要访问提取属性,您可以点击“提取”旁边的“编辑”选项,如图 2.42 所示,以打开以下窗口:

图 2.43:提取编辑属性
以下章节将详细描述此窗口及其字段。
数据存储字段
如果您有多个表,将启用“多个表”选项。目前,由于您只有一个表,所以“单个表”选项被启用。
筛选器字段
您可以使用筛选器限制提取中的数据。例如,假设您只想为“中央”和“东部”地区的数据;您可以使用“添加...”选项轻松做到这一点。选择“区域”作为筛选的列,并选择“中央”和“东部”值以将它们添加为筛选条件。

图 2.44:添加筛选条件
如以下图所示,应选择“中央”和“东部”地区:

图 2.45:选择中央和东部地区

图 2.46:使用区域列创建提取筛选器
随着您在本章的进展,您将了解更多关于这些筛选器的信息。
聚合字段
您也可以使用此选项更改数据的粒度。如果您数据集中的日期在“日”级别,您可以使用不同的选项,如“月”或“年”,将它们汇总或聚合到更高的级别。您将在本书后面的章节中了解更多关于聚合的内容。

图 2.47:转换数据聚合级别
行数字段
使用此选项,你可以选择提取应包含的行数。所有行将包括所有行,顶部将仅包括指定的行数,而样本将包含指定行数的样本。当你处理一个非常大的数据集时,这很有用,但在开发目的上,你只需要数据的样本。

图 2.48:使用行数进行样本选择
在选择所有行时,你还将获得一个名为增量刷新的选项。你不必每天刷新数据,可以使用此选项指定哪个字段可以用来识别新行,这样只有指定的数据部分会被刷新。当你的数据集非常大且定期更新,而旧数据不发生变化时,此选项非常有用。
考虑银行交易的情况。银行永远不会修改旧数据,但会持续添加新数据以保持历史数据。在这种情况下,在提取刷新期间进行增量刷新将非常有帮助。

图 2.49:识别用于刷新的列
现在你已经了解了在这些字段中应添加哪些值,接下来你将回顾选择连接类型时应考虑的因素。
哪种连接更好——实时还是提取?
理想情况下,在大多数项目中,提取数据是最佳方法,但可能需要展示实时数据,就像你之前看到的例子一样。在选择提取或实时连接之前,应考虑以下要点:
-
更新或延迟的数据:如果你需要在查看仪表板时始终需要最新的信息,你需要一个实时连接。否则,如果你对最新数据的延迟感到满意,提取是一个更好的选择。
-
数据量:如果你的数据量非常大,使用数据提取而不是实时连接是理想的,因为可能需要花费很多时间在实时连接上开发仪表板。
考虑到这些要点,你可以为你的项目选择正确的连接类型。
过滤器
此选项类似于你之前了解到的提取过滤器属性。这些过滤器也被称为数据源过滤器,因为它们在数据源处过滤数据。你将在本书的后面进一步学习各种过滤器。
考虑像亚马逊这样的大型零售商的例子,其数据量很大。假设你想分析特定区域的数据。在这种情况下,将整个数据集拉入 Tableau 是不明智的,因为这会使仪表板变慢,而且除了你的目标区域之外,你不会对数据有任何用途。
对于此类情况,您可以使用数据源过滤选项。这将限制数据源本身的数据,并根据指定的过滤标准仅引入所需的数据。
练习 2.07:在订单表上添加区域过滤
考虑到您想在Orders表上添加一个Region过滤条件,仅显示Central和East区域的数据。您可以通过以下步骤实现:
-
在您的 Tableau 实例中加载
Sample - Superstore数据集。 -
将
Orders表拖动到画布上。 -
要添加过滤条件,请点击
过滤|添加选项打开弹出窗口:
![图 2.50:数据源过滤属性]
![图片 B16342_02_50.jpg]
图 2.50:数据源过滤属性
- 点击
添加...打开列列表。选择Region作为列:
![图 2.51:列过滤选择]
![图片 B16342_02_51.jpg]
图 2.51:列过滤选择
- 选择
Central和East作为要保留在数据中的区域。点击确定添加过滤条件,如下所示:
![图 2.52:选择过滤值]
![图片 B16342_02_52.jpg]
图 2.52:选择过滤值
您可以通过点击添加...选项并重复前面的步骤来添加更多过滤条件。
- 您还可以编辑和删除现有的过滤条件。要这样做,选择您想要编辑或删除的过滤条件,然后选择所需的选项,如图所示:
![图 2.53:过滤预览]
![图片 B16342_02_53.jpg]
图 2.53:过滤预览
- 一旦您添加了过滤条件,请在数据网格中预览数据。您将观察到您只有
Central和East区域的数据,正如预期的那样。
![图 2.54:数据预览后过滤应用]
![图片 B16342_02_54.jpg]
图 2.54:数据预览后过滤应用
在这个练习中,您学习了如何应用过滤条件以及与数据源过滤条件相关的各种属性。在下一节中,您将学习如何使用数据网格进行数据转换。
数据网格选项
数据网格允许您预览数据。到目前为止,您只是用它来检查数据包含的行数,但它还包含在开始可视化开发之前转换数据的其他选项。在本节中,您将了解这些选项以及如何使用它们来更好地理解数据转换。
数据预览:您可以使用此功能预览数据。您还可以通过在右侧的框中指定数字来选择要显示的行数,如图所示:
![图 2.55:数据预览切换]
![图片 B16342_02_55.jpg]
图 2.55:数据预览切换
元数据:元数据提供了有关源的信息,例如表名。切换到元数据视图,您可以看到有关数据的所有元数据。您可以查看不同的列、它们来自的表以及远程字段名称。
如果您在此处重命名字段,远程字段名称将显示从数据中提取的原始字段名称。

图 2.56:更改为列表视图表示以显示输入数据源元数据属性
备注
在 Tableau 版本 2021.4 中,元数据将自动显示在预览旁边,您无需在这些选项之间进行选择。
“排序字段”选项将根据您选择的选项对数据进行排序。您可以尝试更改这些选项,并观察数据预览如何变化。

图 2.57:排序数据网格列值
现在,考虑以下数据转换选项。
Abc 图标(见下图),您可以从下拉框中选择列所需的数据类型。一个常见的例子是将“客户 ID”字段存储为数字,而您可能希望它是一个字符串:

图 2.58:数据类型更改选项
数据转换:当您点击下图中所示的下拉图标时,您可以看到转换数据的选项,例如在现有列上创建计算字段和创建组。所有这些选项在加载数据后也都可用。这些内容将在本书的后续章节中详细说明:

图 2.59:数据转换菜单选项
“重命名”选项允许您重命名列。如果该列在数据可视化中不需要,您也可以隐藏它。您可以通过选择“显示隐藏字段”复选框来查看任何隐藏的列。隐藏的列在视图中将以灰色显示,如下图所示:

图 2.60:显示隐藏字段
隐藏的列不能用于可视化。如果您想隐藏列后使用该列,您需要首先取消隐藏列,以便在可视化中使用它。这可以通过点击下拉菜单并选择“取消隐藏”选项来完成。

图 2.61:从输入数据源隐藏/取消隐藏列
别名:别名是呈现数据的一种非常有效的方法,可以在可视化中使用不同的名称。
观察数据预览中的“运输方式”列。您可以看到“类别”一词在不同的“运输方式”值中重复出现,并且它没有增加任何价值;因此,您可以从所有值中排除这个词。这可以通过使用“别名”选项来完成,这将帮助您以不同的名称显示值。要在列上添加别名,请点击下拉菜单并选择“别名...”,如下图所示:

图 2.62:设置列值别名
这将打开弹出窗口以重命名值。删除单词Class。点击“确定”将其添加到数据中。您还可以使用“清除别名”选项清除别名。

图 2.63:编辑别名属性
您可以使用“显示别名”切换按钮在原始名称和别名之间切换。别名通常用于将空记录重命名为空白或包含长值名称的列。

图 2.64:使用“显示别名”选项在数据预览中启用别名
所有这些选项在您将数据加载到工作表中后也可用。
在此视图中,您学习了如何在工作表中提取数据之前执行数据转换。
在之前的所有练习中,您只是连接了两个数据源。但也可以添加超过两个数据源。您只需在连接连接中指定表如何相互连接。
这就完成了您可以在 Tableau 中连接多个表的各种方式。接下来,您将学习有关自定义 SQL 选项的内容。
自定义 SQL
如其名所示,自定义 SQL 用于编写自定义 SQL 查询,根据应用的条件仅提取所选列,而不是提取整个数据库。此选项在 Excel 和文本文件中不可用,因此您可能看不到此选项。
一旦连接到数据库,此选项将出现在“连接”面板中。当您连接数据库时,您将在所有列下面看到“新自定义 SQL”选项。

图 2.65:新的自定义 SQL 选项
您可以将此选项拖到画布上,输入您的查询,然后点击“确定”。完成后,Tableau 将根据指定的查询提取所需数据。
自定义 SQL 可以通过仅添加数据源中的所需列、在表中添加联合以及将字段重新铸造成连接多个数据源在一起来减少数据大小。
到目前为止,您已经学习了在将数据拉入工作表之前可以执行的各种数据转换步骤。在下一节中,您将学习有关数据混合的内容,这是另一种连接数据的方式,但有所不同。
数据混合
有时候,链接字段在不同工作表中可能不同。此外,如果数据源太大,使用传统连接可能会非常耗时。在这种情况下,您可以选择数据混合而不是连接数据。
在数据混合中,您将在两个数据源之间查询数据,然后在主数据源工作表中定义的聚合级别上组合结果。主数据源将是第一个维度或度量值添加到视图中的数据源。此外,结果将与左连接相似,因为主数据源的所有记录都将出现在工作表中。
练习 2.08:使用 Orders 和 People 表创建数据混合
在这个练习中,您将学习如何使用People表创建Orders表的数据混合。以下步骤将帮助您完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
连接到
Orders表并转到Sheet 1。

图 2.66:在 Tableau 中添加 Orders 表
- 在数据混合中,在工作表级别创建链接,而不是在数据源级别。在工作表中,您将能够看到
Orders表及其列。添加一个新的数据源,如下(见突出显示的选项):

图 2.67:在工作表中添加数据选项
- 这应该会引导到与连接数据源相同的菜单。点击
Microsoft Excel,导航到Sample – Superstore.xlsExcel 文件的位置,然后点击打开以打开连接面板。

图 2.68:在 Tableau 中添加另一个数据源
- 现在,将
People表拖到画布上,并像之前一样转到Sheet 1:

图 2.69:将 People 数据添加到 Tableau
现在,您将能够看到两个数据源,如下所示:

图 2.70:工作表中列出的数据源
-
在使用这些数据源之前,添加它们之间的关系。为此,请点击
数据|编辑关系…以打开弹出窗口。注意
如果您使用的是 2020.1 之后的 Tableau 版本,这可能被称为
编辑混合关系...以区分在数据源选项卡中直接创建的关系。

图 2.71:编辑数据属性窗口
- 根据字段名称,默认可以将关系设置为
自动。要更改它,请点击自定义并添加关系。将关系编辑为Customer Name和Person,如图所示。选择Region然后点击编辑…在弹出窗口中进行选择。点击确定以添加关系:

图 2.72:选择两个数据源之间的匹配列
因此,你已经成功混合了两个数据源,可以在下一个练习中可视化你的数据。
练习 2.09:可视化数据混合创建的数据
在上一个练习中,你学习了如何在两个数据源之间执行数据混合。在这个练习中,你将在混合数据上创建一个可视化,以了解数据混合的应用——同样,你将继续使用Orders表和People表来完成此目的。请注意,只有当你使用这两个数据源的字段时,混合才会激活;否则,它将保持不活动状态。
执行以下步骤以完成此练习:
-
在
Orders数据上,点击并拖动Customer Name到行。注意
2020.1 版本之后的 Tableau 可能会在此步骤给出警告,表示字段可能包含超过 1000 行。如果是这种情况,请选择
添加所有成员以继续。

图 2.73:添加主要数据源
这现在将成为你的主要数据源,数据源上的蓝色勾选标记表示。
- 为
People数据源重复此步骤。

图 2.74:添加次要数据源
这将成为你的次要数据源,数据源上的橙色勾选标记表示。同时,请注意用于链接两个数据源的红色链接图标。

图 2.75:主要和次要数据源图标
- 当你为
People数据中的四个人的Person进行过滤时,你会看到你已经在这些数据源之间链接了这些值。点击Person列的下拉菜单,然后点击过滤…,取消选择空值,然后点击确定以添加过滤器。

图 2.76:过滤以移除不匹配的值
你将得到以下输出,它显示了与Person匹配的客户名称:

图 2.77:数据混合输出
使用数据混合,你可以在不同的工作表中以不同的聚合级别显示来自多个数据源的数据。例如,在一个工作表中,你可以在Year聚合级别混合数据,而在另一个工作表中,你可以在Month级别混合。
这之所以可能,是因为在数据混合中,数据源在输入源处并未连接。这提供了灵活性,可以拥有大型数据源,并在需要时仅在某些工作表中混合。这有助于使仪表板渲染更快。
数据混合的限制
数据混合不适用于某些聚合级别,例如MEDIAN和COUNTD(计数不同)。
您不能直接在 Tableau Server 上发布混合数据源。首先,您需要将数据源单独发布到服务器上,然后在您的 Tableau Desktop 实例中混合已发布的数据源。发布数据源意味着上传您的数据并将其直接存储在 Tableau Server 上。
另一个限制是,从二级数据源使用的数据必须在聚合级别上高于主数据源。如果聚合级别不正确,可视化中会出现星号 (*),表示一对一连接的聚合级别。您可以通过交换数据源来解决这个问题。
这结束了本课的理论部分。接下来,您将在以下活动中将您所学的一切付诸实践。
活动二.01:识别退货订单
作为分析师,您可能会遇到需要通过销售额来评估业务绩效的情况。因此,了解有多少订单已履行以及有多少订单已退货非常重要。如果某些产品被频繁退货,这是一个需要调查的点,因为它可能对业务产生严重影响。
通常,订单信息与退货信息分开保存。因此,为了将此信息合并在一起,您需要连接这两个数据源。
对于这个活动,您将使用来自 Sample - Superstore Excel 文件的 Orders 和 Returns 表。您已经熟悉了 Orders 表。
Returns 表包含 Order ID 和 Returned 列。Order ID 是与 Orders 表匹配的 ID。Returned 列表示订单 ID 的返回状态。


图 2.78:退货单列
目标是在将它们与主 Orders 表结合后识别退货订单,以便您可以确定哪些订单既已履行又已退货。
步骤如下:
-
在您的 Tableau 实例中打开
Sample - Superstore数据集。 -
将数据源重命名为
Activity 1。 -
将
Orders表拖放到画布上。 -
对
Returns表重复相同的步骤。 -
您需要将所有
Orders和Returns表的值合并到合并数据集中。您能根据要求识别正确的连接吗?请记住,为了退货,订单应该始终先完成。如果您在这种情况下更改连接类型为左连接、右连接或全外连接,可以解释什么? -
识别数据网格中退回了多少产品。(一个订单可以包含多个组合的产品。)
预期最终输出:


图 2.79:选择正确的连接
在这个活动中,您加强了关于各种连接及其输出的知识。您还学习了如何通过更改连接类型来解释结果。
备注
该活动的解决方案可以在此找到:packt.link/CTCxk。
活动摘要 2.02:准备数据以进行可视化
现在你已经连接了数据,下一步是确保数据为可视化做好准备。这涉及到执行数据转换活动,例如通过删除空值来清理数据。你可能还需要重命名某些列或添加别名,拆分列等。
在本活动中,你将根据前一个活动的左连接输出执行一些数据转换步骤。
本活动将帮助你加强 Tableau 中数据转换的概念。这是任何 Tableau 项目中非常重要的一个过程。因此,你熟练掌握这些操作在 Tableau 中变得至关重要。
本活动的目标是将数据转换成适合可视化的清洁形式。首先,你需要为此数据源创建一个提取。然后,你需要仅显示家具和办公用品类别中的数据。是否可以使用提取属性来完成此操作?你还将通过将任何空值更改为空格来清理最终数据。让我们也从Ship Mode列中删除重复的术语,如Class。
完成后,你的数据应该为可视化做好准备。
从活动 2.01 继续,以下步骤将帮助你完成此活动:
-
在你的 Tableau 实例中打开
Sample - Superstore数据集。 -
为此数据创建一个数据提取。
-
在数据上添加一个过滤器以提取
家具和办公用品类别。检查行数。 -
通过别命名几个列来转换数据。
-
将
Returns表中的列的空值别名为空格。 -
从
Ship Mode列中删除单词Class。
完成后,你应该得到以下输出:
预期最终输出:

图 2.80:活动的最终输出
在本活动中,你学习了如何提取数据。你还为类别列添加了过滤器,仅提取所选类别。很多时候,你将在需要从一开始就将数据分离的项目上工作,例如区域数据。这些过滤器帮助你实现这一点。你还通过别名转换了数据,通过删除重复的单词和空值使其变得更加干净。
注意
该活动的解决方案可以在以下链接找到:packt.link/CTCxk。
摘要
在本章中,你学习了如何连接各种数据源,这是在 Tableau 中进行数据分析的首要步骤。接下来,你了解了 Tableau 提供的各种连接选项和数据转换选项,以优化最终的可视化数据。在实践数据分析中,连接表是最常见的需求之一。例如,如果你有两个包含员工详情和部门详情的表,为了找到每个部门的员工数量,你会使用一个连接键来获取所需信息。
你还学习了关于数据融合和自定义 SQL 的一些高级数据连接选项。本章的关键收获是如何根据需求最有效地连接数据,以及如何转换数据使其更适合可视化活动。下一章将继续在 Tableau Prep 中探讨数据准备的话题。
第三章:3. 数据准备:使用 Tableau Prep
概述
在本章中,您将学习 Tableau Prep 中的某些高级数据准备方法。您将学习如何使用各种 Tableau Prep 选项来清理数据集,使用不同的选项连接不同的数据源,并执行数据操作活动,如转置、分组和聚合。到本章结束时,您将能够将清理后的数据源导出到 Tableau 中进行可视化开发。
简介
在上一章中,您使用 Tableau Desktop 执行了一些基本的数据转换,例如连接、过滤和分组。然而,Tableau Desktop 只能执行基本的数据操作。它可能无法处理原始的未经处理/未清洗的数据,例如包含多个条目、缺失条目或不一致格式的数据。现在,您将学习更多适合这些更复杂场景的高级方法。
Tableau Prep 是一个专门设计用于执行数据转换的工具,以便我们可以使用这些数据来进行可视化。它包含高级算法,可以帮助检测数据不一致并修复它们。这可以自动完成,也可以根据需求手动完成。
在本章中,您将学习 Prep 界面以及数据操作,如添加数据源、数据概要分析以及应用诸如清理、拆分、添加转置、连接数据源和应用联合等转换。最后,您将学习如何将转换后的数据集导出到 Excel 中进行数据可视化。
Prep 界面
在本节中,您将查看 Tableau Prep 中用于数据转换的选项。Tableau Prep 可以从 Tableau 网站下载(www.tableau.com/products/prep)并像其他任何程序一样安装。您可以在前言中找到详细的安装步骤。安装完成后,导航到您的桌面并点击 Tableau Prep 图标以打开它。
当您第一次打开 Prep 时,它看起来会是这样:
![图 3.1:Prep 启动屏幕
![img/B16342_03_01.jpg]
图 3.1:Prep 启动屏幕
连接选项卡(左上角),显示可以在 Prep 中连接的所有数据源。这与 Tableau Desktop 中的连接面板类似。(第二章,使用 Tableau Desktop 进行数据准备。)
![图 3.2:Prep 中的数据连接
![img/B16342_03_02.jpg]
图 3.2:Prep 中的数据连接
在本章中,您将使用基于文件的连接进行操作,例如 Excel 电子表格和 CSV 文件。首先,让我们简要地看看启动屏幕上可用的其他选项(如图 3.1 所示):
![图 3.3:启动屏幕上的选项
![img/B16342_03_03.jpg]
图 3.3:启动屏幕上的选项
在前面的图中,您可以查看以下元素:
-
打开工作流程:此选项打开已创建的工作流程。工作流程或流程是一系列你在 Prep 上的输入数据转换活动。你将在接下来的章节中了解如何创建不同的工作流程。 -
连接到数据:此选项打开连接菜单,你可以在这里连接到数据,如之前所示。 -
最近的工作流程:所有之前的工作流程都可以在这里查看。你可以使用右侧的控件在卡片视图或列表视图之间切换。
除了这些选项之外,Tableau 还提供了 示例工作流程,以及 发现 菜单,你可以在这里查看 Tableau 网站上 Prep 相关的内容更新。
顶部还有其他 文件、编辑、流程 和 服务器 菜单选项。文件 和 编辑 选项应该是显而易见的。流程 菜单可以用来运行流程,而 服务器 菜单提供了在 Tableau Server 上登录和发布流程的选项。
现在你已经了解了各种选项,是时候在流程中添加一些数据了。
在流程中添加数据
如 第二章 中所述,使用 Tableau Desktop 进行数据准备,任何数据准备活动的第一步是将数据添加到你的工作流程中。要在 Prep 中这样做,请点击 连接 并选择数据源。在接下来的练习中,你将连接到基于文件的源,但对于基于服务器的数据源,过程是相似的。
练习 3.01:连接到 Excel 文件
在这个练习中,你将在 Prep 中连接到你的第一个数据源。按照以下步骤完成练习:
-
在你的计算机上安装 Tableau Prep Builder 后,找到以下位置的文件:
-
Windows
C:\Program Files\Tableau\Tableau Prep Builder <version>\help\Samples\en_US\Superstore Files -
Mac
/Applications/Tableau Prep Builder <version>.app/Contents/help/Samples/en_US/Superstore Files
-
-
点击
连接并选择Microsoft Excel选项。 -
这将打开一个菜单,你可以从中选择 Excel 文件。导航到上述位置并打开
Orders_East.xlsx文件。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_03_06.jpg)
图 3.4:使用 Prep 连接到 Excel 文件
当 Excel 文件加载完成后,你会看到以下屏幕:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_03_05.jpg)
图 3.5:数据输入属性
在这个屏幕上有很多标签和选项。这些将在接下来的章节中介绍。
- 点击
+图标 (图 3.6) 查看可以应用于此输入数据步骤的步骤:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_03_06.jpg)
图 3.6:向工作流程中添加步骤
现在是时候添加一个输出步骤了。要这样做,请点击 + 并选择 输出。将打开一个输出选项卡,你可以预览数据。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_03_07.jpg)
图 3.7:工作流程中的输出步骤属性
在这里,你学习了如何连接到 Excel 文件。接下来,你将了解如何将多个输入带入流程中。
练习 3.02:连接多个数据源
在商业项目中,理想情况下,数据应存储在不同的来源中。因此,了解如何连接到多个数据源非常重要。在这个练习中,你将尝试向现有的流程中添加另一个数据源。
你将连接Orders_South数据,如下所示:
- 从上一个练习的最后一步继续,点击
+并选择“文本文件”选项。这是因为所需数据存储为 CSV 文件,这是一种文本文件类型。

图 3.8:连接到 CSV 文件
- 现在,导航到
Superstore Files下的Order_South文件夹。选择orders_south_2018.csv并点击“打开”将文件导入 Prep。

图 3.9:数据探索窗口查看输入文件
你应该会看到以下屏幕:

图 3.10:将多个文件添加到工作流程中
以下步骤将指导您通过图 3.10中显示的“输入”面板中的各个选项卡:

图 3.11:CSV 输入属性
-
“设置”选项卡主要与数据源的连接细节相关,可能因数据源连接而异。您在这里可以找到编辑连接细节、选择文本选项、决定使用哪种字段分隔符等选项。
-
您还有其他选项,如“文本限定符”、“字符集”和“区域设置”。Prep 足够智能,可以识别这些配置,但如果需要,可以根据要求进行更改。最后,有一个“增量刷新”选项。这与 Tableau Desktop 类似,可以用来根据某些列加载新数据,而不是每次流程运行时都拉取所有数据。
-
选择“多个文件”选项卡以获取添加多个文件一起的选项。

图 3.12:输入多个文件的选项
- 现在,将选择更改为“通配符合并”。假设您想从文件夹中获取所有
orders_south文件。您可以通过模式(*south*)简单地搜索它,并找到您想要的所有文件(图 3.13)。

图 3.13:对多个文件输入进行通配符搜索
您也可以在文件夹(或子文件夹)中搜索此类文件。您还可以包含或排除符合特定模式的文件。通过包含一个星号(*),您可以有选择地忽略关键字前后所有字符。
- 点击“应用”,所有这些工作表都将包含在流程中。Prep 还包含一个新列,“文件路径”,它指示数据来源的位置。

图 3.14:使用文件路径识别输入文件源
- 接下来,选择“数据样本”选项卡。在这里,您可以采样输入数据,这在数据量很大时特别有用。理想情况下,当处理非常大的数据集时,最好使用样本来节省开发工作流程的时间,因为工作流程运行得更快,如果有更少的记录。
![图 3.15:采样输入数据
![img/B16342_03_15.jpg]
图 3.15:采样输入数据
通过悬停在信息图标上,您可以检查 Prep 如何采样数据。
- 选择“更改”选项卡。对数据进行的所有更改都将在此跟踪。一个简单的例子是在数据中取消选中某些列名。例如,如果您取消选中“销售”和“数量”列,这些列将立即添加到“更改”选项卡中。更改也由“更改”列中的注释(小图标)以及数据输入图标上的注释表示。(图 3.16。)
![图 3.16:跟踪工作流程中的更改
![img/B16342_03_16.jpg]
图 3.16:跟踪工作流程中的更改
在本节中,您学习了如何在工作流程中连接多个数据源及其配置属性。接下来,您将学习如何在 Prep 中分析数据。
数据源配置文件
到目前为止,您只连接了不同的数据源。但您的主要目标是更好地理解数据。这可以通过观察数据分布、各种列的数据类型、列包含的值等来实现。
数据源配置文件通过允许您观察数据分布和频率以及字段的多种数据类型,使您能够了解底层数据。这有助于您对数据进行适当的更改以满足流程中的要求。一些常见选项包括检查数据分布频率、唯一记录数以及各列之间的关联。您将首先了解一些常用的分析步骤,然后将在练习中应用它们。
可以使用清洁步骤执行数据源分析。可以通过悬停在数据源旁边的+图标上并选择“清洁步骤”来添加清洁步骤,如下所示:
![图 3.17:在工作流程中添加一个清洁步骤
![img/B16342_03_17.jpg]
图 3.17:在工作流程中添加一个清洁步骤
现在,已将清洁步骤添加到工作流程中,这将打开一个新窗口以显示其连接的输入数据集。在这个窗口中,您可以分析您的数据。
![图 3.18:清洁步骤属性
![img/B16342_03_18.jpg]
图 3.18:清洁步骤属性
上一张截图显示了数据配置文件窗格。每个列将根据数据类型给出略有不同的表示。
例如,字符串数据类型将给出其发生的频率分布。如果您观察Customer Name列(如下截图所示),您将观察到客户下订单的数量。这是因为视图基于客户订单频率。

图 3.19:观察客户名称值频率
对于数值列类型,概览将仅显示一个表示值分布的直方图。观察Quantity列,它是一个数字。数据概览提供了一个直方图,可以帮助您了解销售数量的范围。

图 3.20:数值列的数据概览
现在您已经了解了数据概览的概念,是时候进行练习,以练习使用Orders数据集的数据概览。
练习 3.03:Orders_South 数据集的数据概览
在这个练习中,您将学习如何通过使用“准备”中的数据概览选项来更好地理解数据。在前一个工作流程中,您连接到了Order_South数据集。这是该练习的延续。
-
执行以下步骤:
-
一旦在“准备”阶段连接了数据,点击
+图标,然后选择Clean Step:

图 3.21:添加清理步骤
- 点击清理步骤以打开详细信息,如下所示:

图 3.22:Orders_South 数据源的数据概览
- 将鼠标悬停在
Product ID列上,查看它包含的唯一值。您还可以选择更改数据类型,并对它进行排序、搜索和清理操作。此外,您还可以通过以下截图查看数据的组成:

图 3.23:观察 Product ID 列中值的频率
- 选择任何值。请注意,所有相关的行现在都被突出显示。例如,如果您选择佛罗里达州,您将看到数据如何与其他列连接。您还会观察到其利润趋势处于较低水平,这表明佛罗里达是一个销售量较低的状态。

图 3.24:数据概览中多列之间的关联
使用这种数据概览,您可以通过数据分布快速查看数据趋势,这使我们能够快速发现并删除异常,如负销售数量。这些选项将在下一节中详细介绍。
使用清理、分组和拆分进行数据准备
清洗是数据准备的一个重要部分,因为拥有正确的数据可以导致正确和高效的数据分析。
例如,想象一下数据集中一个订单的销售金额为空白,但订单仍然被处理。这是不正确的,需要采取一些行动。相关的订单应该不被包括,或者销售金额应该被替换为平均值。
另一个例子是同一个客户有多个名字,或者多个客户 ID。您可能需要将名字合并为一个,以便正确分析信息。所有这些任务都可以使用数据清洗来完成。Prep 提供了多种数据清洗选项。在本节中,您将了解它们。
参考之前创建的Orders_South数据集工作流程:

图 3.25:Orders_South 工作流程
右键单击Clean 1步骤以打开附加属性,如下面的截图所示:

图 3.26:步骤自定义选项属性
在这里,您可以执行诸如重命名、添加描述和编辑步骤颜色等操作,如下文所述:
重命名:双击字段名称或(如果您使用的是 Mac)Ctrl + 点击。这会打开一个文本输入框。在这里,您可以为此步骤添加一个您选择的名称。

图 3.27:在工作流程中重命名清洁步骤
添加描述:描述可以阐明步骤的目的。如果工作流程被多个人使用,这尤其有用。要添加描述,右键单击步骤并选择添加描述选项。

图 3.28:在工作流程中为清洁步骤添加描述
在您添加描述后,文本将如下显示在步骤下方:

图 3.29:在工作流程中切换清洁步骤的描述
您可以通过单击前一个图中的突出图标来选择显示或隐藏描述。在您添加了描述之后,您还可以编辑或删除它。要这样做,再次右键单击步骤,您将看到编辑描述和删除描述选项(图 3.30):

图 3.30:工作流程中清洁步骤的描述编辑和删除选项
编辑颜色将改变步骤的颜色。这在流程的各个步骤中进行视觉识别时很有用。
现在,您将关注底部面板。这同样也被称为配置文件面板,您之前已经见过。在这里,您将找到过滤值和创建计算字段选项。您会注意到 Prep 还提供了与数据相关的建议。您可以使用视图选项在三个视图之间切换。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_03_31.jpg)
图 3.31:工作流程中数据清洗的建议
更改数据类型将列的类型更改为另一种数据类型。以下图像显示了 Prep 中的不同数据类型:

图 3.32:更改列的数据类型
目前,列已选择数字(小数)数据类型。如有需要,您可以选择字符串以相应地更改列的数据类型。
数字(小数)和数字(整数)是数值数据类型。日期和时间用于包含日期或时间值的列。字符串数据类型用于包含字符值的列。您还有数据角色。这适用于字符串数据类型,并进一步定义了列包含的字符串值的类型。
通常,您需要更改列数据类型以正确表示。例如,如果邮政编码以数值数据类型保存,则这不是正确的表示。尽管邮政编码是数字,但它们的真实表示形式是字符串,具有地理角色。您现在将学习如何在 Prep 中根据以下示例更改数据类型。请参考提供的建议:

图 3.33:使用建议更改列数据类型
如您所见,状态被保存为字符串,但没有分配数据角色。要将数据角色分配给状态,请单击状态列,然后将数据角色更改为地理 – 州/省,如下面的屏幕截图所示:

图 3.34:更改列的数据角色
您也可以对其他列执行相同的操作,即对城市、邮政编码和国家。我们进行的所有更改都将记录在更改选项卡上。

图 3.35:将建议应用于其他列
在任何时候,如果您想撤销更改,可以通过悬停在更改上并选择删除选项来实现,如下所示:

图 3.36:在工作流程中撤销更改
更改这些列的数据类型和角色后的结果如下:

图 3.37:更改之前列的显示方式

图 3.38:更改后的列
这些更改有助于创建正确类型的可视化,以提取有用的见解 - 例如,如果这些是简单的字符串类型,您将无法创建如地图之类的地理可视化。这将限制您的可视化能力,以绘制某些见解,例如哪些城市或哪些邮政编码订购了最多的产品,或者它们与其他城市如何比较。
附加清洁步骤
在上一节中,您学习了如何添加清洁步骤,以及如何使用与清洁步骤相关的各种选项来跟踪更改。您还看到了如何更改数据类型和数据角色。在本节中,您将了解一些在单个列级别可用的附加清洁步骤。您将继续在相同的数据配置文件窗格中工作。
要访问附加的清洁步骤,将鼠标悬停在单个列上,然后单击…图标以查看附加选项,如下所示:

图 3.39:更多清洁选项
在继续之前,重要的是要注意,由于数据类型的不同,某些列可能有一些不可用的选项。例如,对于国家,视图状态 - 摘要被禁用。然而,对于利润列,它可用,如下面的截图所示:

图 3.40:基于列数据类型的可用选项
考虑到这一点,现在是时候学习更多关于您可以用来清洁数据的附加选项了。
列级别的清洁步骤
在本节中,您将学习如何在输入数据源上添加筛选和计算选项。您将继续从更改数据角色后留下的地方开始。
筛选:筛选选项允许您从数据集中选择数据子集。此选项限制了被拉入工作流程的数据。通常,将分析限制在数据的特定子集上以进一步分析是有用的。我们可以使用筛选选项来实现这一点。例如,您可能希望识别订单量最高的州。这可以通过以下方式轻松完成对州列的排序:

图 3.41:对州列进行排序
练习 3.04:在清洁步骤中应用筛选
在这个练习中,您将学习如何在清洁步骤中应用筛选。您可以在图 3.41中看到,佛罗里达州有最多的订单。现在您可以筛选数据,只显示佛罗里达州的订单。
按照以下步骤完成此练习:
- 单击
…并选择筛选-选择值。

图 3.42:不同的筛选类型
- 从列表中选择
佛罗里达州并单击完成以筛选数据:

图 3.43:选择值过滤器属性
使用“计算...”、“空值”和“通配符匹配”也可以有其他方法来过滤数据:

图 3.44:更多过滤数据的方法
- “空值”过滤器过滤数据中的空值,而“通配符匹配”基于关键字进行过滤。

图 3.45:计算过滤器属性
如其名称所示,“计算...”过滤器根据某些计算条件过滤数据。
- 现在,创建一个计算来检查哪个月份订单量最高。为此,单击“订单日期”列上的
…图标,然后找到“创建计算字段”和“自定义计算”:

图 3.46:在工作流程中创建计算
-
这将打开计算编辑器。在编辑器中输入以下表达式,并将计算重命名为
Order_Date_Month:Month([Order Date])

图 3.47:计算编辑器属性
- 对月份进行排序,观察最高销售额在十一月,其次是六月:

图 3.48:使用计算添加的新列
注意
由于时间和版本差异,您的计算可能会导致最高销售额的月份不同。排序步骤的指令将保持不变。
根据您指定的条件,您可以以类似的方式为过滤器创建计算。您将在阅读本书的过程中详细了解计算。
练习 3.05:在工作流程中清理列
在上一节中,您学习了如何使用各种条件过滤数据。您还学习了如何向此数据源添加计算。在本练习中,您将了解“清洁”选项。
“清洁”选项提供了可以用于清理列的字符串操作。例如,包括移除标点符号或杂乱字符,将字符转换为大写或小写,从字符串中移除数字等。清理列必须执行以下步骤:
- 继续使用上一节相同的流程。观察“产品名称”列。它包含许多杂乱字符,如
#和'。您可以移除这些字符,因为它们对分析不太有用。

图 3.49:带有杂乱字符的产品名称预览
- 要访问“清洁”选项,请单击
…图标。您将看到“清洁”选项提供各种用于清理数据的函数,如下一截图所示:

图 3.50:各种清洁方法
- 现在,使用“产品名称”的“移除标点”选项,如下所示:

图 3.51:使用“移除标点符号”选项清理产品名称列
您将获得一个没有垃圾字符的干净列:

图 3.52:清理后的产品名称列
还有其他一些选项,例如删除数字或字符、更改大小写和删除值中的空格。这些选项是自我解释的,可以根据项目需求随时使用。
分组值
将值分组意味着将两个或多个值组合成一个单一的组合值,以便它们作为一个值或组来表示。这通常用于数据中包含拼写错误,导致相同的值以不同的形式出现的情况。
想想我们那位具有多个名称但被不同客户 ID 表示的客户。这个问题可以使用分组值来解决。我们可以使用分组值将多个客户名称合并为一个客户。
与“清理”选项类似,“分组值”选项可以通过将鼠标悬停在列上并单击“…”图标来访问,如下所示:

图 3.53:各种分组值方法
您将在下一个练习中学习如何在工作流程中使用此选项。
练习 3.06:将值分组到组中
在这个练习中,您将使用“手动选择”选项将“子类别”值“椅子”和“桌子”组合成一个组。按照以下步骤完成此练习:
- 点击“子类别”列的下拉菜单,然后选择“分组值”和“手动选择”:

图 3.54:使用手动选择方法分组值
- 在窗口的左侧,选择“椅子”值,这将向右侧添加一个成员组,也称为“椅子”。默认情况下,组将具有与第一个成员相同的名称,在这种情况下是“椅子”。

图 3.55:向组中添加成员
- 要将组重命名为“办公家具”,请双击“椅子”并输入新名称,如图下所示:

图 3.56:重命名一个组
现在新的组名应该如下所示:

图 3.57:更新后的组名
- 现在您可以使用右侧列添加更多成员到组中。通过选择该值将“桌子”添加到这个组:

图 3.58:向组中添加额外成员
- 你还可以添加目前不在数据中但将来会添加的值。为此,请点击
+图标并在文本框中添加值。你将在值旁边看到一个红色圆点,表示该值目前不存在于数据中。请注意,此值应与未来预期的值匹配,否则它可能不会自动添加到组中。

图 3.59:将未来值添加到组中

图 3.60:将未来可用的成员添加到组中
- 然后,点击
完成以添加组。新组将被添加,由一个回形针图标表示(图 3.61)。

图 3.61:分组值替换子类别列中的单个值
这是一个手动分组的例子。另一种分组数据的方法是使用内置算法,这些算法使我们能够自动使用发音、常用字符或拼写来完成这项工作。一个常见的例子是将相同的短语以不同的方式书写,例如“Tableau Prep”和“Prep Tableau”。这些本质上意味着相同的事情,但书写方式不同。Prep 提供了内置算法,可以识别此类值并将它们自动分组。
拆分值
此选项允许我们将列值拆分为多个子值。在基于分隔符(如逗号或竖线)将多个值存储为单个值的场景中,这可能很有用。有时,为了优化数据存储,多个值可能被存储为组合列。
考虑下一个例子,产品 ID,它包含类别、子类别和实际产品 ID字段组合:

图 3.62:组合列值示例
练习 3.07:拆分列
假设由于存储大小限制,你维护了一个高度优化的数据库,并确保它不包含重复数据。你只有产品 ID列可用。要获取类别和子类别列,你可能需要使用拆分值选项来拆分产品 ID列。以下步骤将帮助你完成这个练习:
- 可以通过点击
…图标并选择拆分值来访问拆分值选项。有两个选项可用:自动拆分和自定义拆分。

图 3.63:各种拆分值方法
- 当你需要使用分隔符将整个列拆分为多个部分时,可以应用
自动拆分。如果你需要将产品 ID拆分为三个部分,可以使用此选项。选择此列上的自动拆分并查看结果:

图 3.64:在产品 ID 列应用自动拆分
您可以在下一张截图看到,产品 ID现在使用连字符(-)分隔符被分为三个部分:

图 3.65:产品 ID 列自动拆分的结果
- 现在,假设您想有一个只包含
产品类别的另一个列。这是产品 ID列的第一部分。对产品 ID应用自定义拆分以获取第一部分,即类别。如果您使用 PC,请使用Ctrl + Z(在 Mac 上为Cmd + Z)恢复到原始列,然后应用自定义拆分,如下所示:

图 3.66:在产品 ID 列应用自定义拆分
- 输入分隔符(
-)以及所需的拆分数,如下所示:

图 3.67:自定义拆分属性
您现在将看到一个新列,它包含产品类别,如下所示:

图 3.68:产品 ID 列的自定义拆分结果
这就结束了关于您可以在数据上执行的所有清洁操作的讨论。您学习了使用分组、清洁和拆分来清洁数据的各种方法。接下来,您将学习关于数据转换步骤,如聚合、交叉、连接和并集。
聚合、交叉、连接和并集
您经常会遇到某些场景,其中数据可能需要调整以适应可视化需求。例如,如果您正在分析公司的月度销售额,您不需要每一天的数据。在这种情况下,您需要将数据聚合到月度级别。这也减少了用于分析的数据量。
另一个例子是,当过去几年的数据存储为独立的文件,而当前年份存储为单独的文件时。所有文件具有类似的列结构。如果您要一起分析所有数据,您可能需要执行并集转换来将这些单独的文件合并为一个文件。
这种数据转换可以在 Prep 中完成。您现在将学习如何进行这些操作。
聚合
聚合有助于改变数据的粒度。在这个上下文中,粒度意味着数据可用的级别。例如,考虑两个文件。一个文件包含客户信息,如客户 ID、客户姓名、地址和加入日期。另一个表包含客户所做的交易信息,如特定产品的订单数量。练习将详细探讨这个选项。
练习 3.08:根据购买情况识别高价值客户
假设你的任务是根据客户的购买情况识别高价值客户。为此,你需要首先将交易文件汇总以计算每个客户 ID 的所有购买价值,然后将其与客户信息表连接。在这个练习中,你将连接到Orders_South数据,并在类别和船运方式列中聚合利润值:
- 你将继续使用相同的流程。点击
+图标并选择聚合:

图 3.69:将聚合步骤添加到工作流程中
- 这将在工作流程中添加一个
聚合步骤。点击它,并选择分组字段和聚合字段。你将在屏幕上看到以下内容:

图 3.70:已添加到工作流程中的聚合步骤
由Abc图标或日期列表示的维度或文本列将作为分组字段,而由#表示的度量或数值列将作为聚合字段。你只能将文本或日期列与数值列分组以形成聚合。

图 3.71:聚合步骤属性
- 通过以下方式单击字段来更改聚合类型:

图 3.72:各种聚合方法
- 基于销售数据聚合,按
类别分组。由于类别是一个维度,它将在分组字段下,而利润将在聚合字段下(因为它是一个度量)。双击类别将其添加到分组字段下,同样,双击利润将其添加到聚合字段下:

图 3.73:添加分组和聚合字段
- 现在数据已按各种
类别值和利润分组。要向组添加另一个维度,你可以双击并添加到分组字段部分。现在,将船运方式添加到分组字段:

图 3.74:多个分组字段聚合结果
- 除了清理,清理步骤还允许你预览我们的数据。现在向这个聚合添加一个清理步骤并预览数据。切换到使用此截图突出显示的选项显示数据网格:
![图 3.75:基于聚合步骤结果的完整数据预览]()
图 3.75:基于聚合步骤结果的完整数据预览
你已经根据利润值在类别和船运方式级别聚合了数据。在本节中,你学习了如何根据不同粒度级别聚合数据。接下来,你将学习如何旋转数据。
数据旋转
有时,数据以宽格式存储,而不是 Tableau 所需的长格式。更宽的格式表示数据以水平格式存储。图 3.76 中的项目类别和不同年份的已售单位就是一个例子。在这里,一个类别的数据存储在多个年份列中,表示宽格式。

图 3.76:宽格式
长格式中的数据表示垂直分布。这意味着一个项目类别的不同值将存储在同一个 Category 列中。如图 3.77 所示,所有年份都在一个 Year 列中,所有已售单位值都在一个 Units Sold 列中:

图 3.77:长格式
要使用数据用于可视化,Tableau 需要长格式。在这种情况下,您可能需要使用 Prep 中的数据透视步骤来转换数据以用于 Tableau。下一个练习将展示如何做到这一点。
练习 3.09:使用数据透视
在这个练习中,您将连接到 ConsumerPriceIndices_E_All_Data.csv 并在此数据上添加一个数据透视。按照以下步骤完成此练习:
注意
在进行练习之前,请确保从本章的 GitHub 仓库下载 CSV 文件。您可以在 packt.link/LUsoU 找到数据文件。
- 连接到
ConsumerPriceIndices_E_All_Data.csv数据源:

图 3.78:CustomerPriceIndices_E_All_Data 中的数据
正如您所看到的,国家数据按不同的年份存储在不同的列中(从列 H 到列 X)。这是一个宽格式的例子。为了将此数据用于可视化分析,您需要将其转换为长格式。
- 点击
添加连接–文本文件。导航到WorldIndicators Files文件夹,您可以在此找到该文件。点击打开将其添加到流程中。
这将把数据添加到流程中。您可以通过添加一个清理步骤来预览数据。一旦添加,点击 Clean 4 打开数据网格。

图 3.79:添加清理步骤
您将观察到各种年份值存储在不同的列中,而不是不同的行中,正如您在图 3.78 的 Excel 数据预览中所看到的。此外,空值是没有数据存在的空白记录:

图 3.80:水平存储的年值数据预览
- 确保它与
Months列的值相似(即在一个单独的列中):

图 3.81:通过月份列表示的长格式
- 通过点击
+并添加一个Pivot步骤来完成:

图 3.82:数据透视步骤属性
- 接下来,拖动您想要数据透视的字段,即所有年份字段。通过选择所有年份列来完成此操作。使用Ctrl + 点击进行多选并拖动它们到
Pivoted Fields区域:

图 3.83:向数据透视添加列
- 重命名这些新列。如果您想添加一个额外的数据透视字段,可以通过点击
+图标并添加另一个数据透视到您的数据中来实现。

图 3.84:向数据透视表添加额外列
- 现在,向这个数据透视表添加一个清洁步骤,并预览数据。向下滚动数据预览窗口,观察不同的值:

图 3.85:完成数据透视转换后的数据预览
您已将存储为不同列中的年份数据透视为单个列中的年份。现在,您可以比较不同年份的值以了解模式 - 您将在下一章中详细了解这一点。接下来,您将学习如何连接和合并数据。
数据的连接和合并
数据的连接和合并与 Tableau Desktop 类似,有一些额外的功能可以帮助分析连接结果。
连接是将两个或多个表基于某些公共字段合并成单个表的一种方式。这种组合的结果比原始表包含更多的列,因此它在水平方向上扩展。Tableau Prep 支持以下连接类型:

图 3.86:连接类型
您现在将更仔细地查看以下示例中的连接。
练习 3.10:连接两个数据源
在这个练习中,您将使用Orders_Central表与Return_reason_new表进行连接,以分析订单退货。这两个数据源都位于Superstore Files文件夹中:

图 3.87:输入文件位置
按照以下步骤完成此练习:
-
使用
Connect–Text File添加Orders_Central.csv数据源并选择此文件。对Returns数据重复相同的操作。使用Connect–Microsoft Excel选择return reasons_new文件。 -
在为两个数据源都添加清洁步骤之后,您可以观察到
Order ID列可以用作连接这两个数据源的公共字段。

图 3.88:查找连接列
- 在
Order_Central的清洁步骤之后添加一个连接步骤,如下所示:

图 3.89:在工作流程中添加连接步骤
- 要进行连接,请通过点击并拖放到“连接”图标来选择步骤。选择“清洁 7”步骤并将其拖放到“连接”步骤。当它被拖放到“连接”图标旁边时,将弹出三个选项:“添加”、“并集”和“连接”。将“清洁 7”步骤拖放到“添加”选项。将其拖放到连接处将在流程中添加另一个连接步骤。您将在下一节学习“并集”选项。

图 3.90:连接选项预览
- 在添加连接后,点击“连接 1”窗口以打开属性:

图 3.91:分析连接结果
- 如您在设置中看到的,默认连接基于“行 ID”列。这需要更改为“订单 ID”。要更改连接子句,请点击“行 ID”列以打开包含不同列的弹出窗口,并选择“订单 ID”:

图 3.92:更改连接子句
完成此操作后,工作流将根据“订单 ID”列在“清洁 6”和“清洁 7”步骤之间反映连接:

图 3.93:根据更改连接子句的连接值预览
在您的屏幕上,您将看到一些值在右侧以红色显示。红色值是未连接的值,黑色值是已连接的值。
- 默认连接是内部连接,但点击连接图标的各个阴影区域可以更改连接类型。有多种连接类型,将在本例之后详细讨论。选择“清洁 6”的空白区域,将连接类型更改为左连接,如下所示:

图 3.94:更改连接类型
在“连接结果摘要”中,您可以查看附加信息,例如包含和排除的记录数,以及匹配/不匹配的记录。根据连接条件,这些值将发生变化。您可以看到有2,341个订单已被返回,如“连接结果”所示:

图 3.95:分析连接结果
- 将鼠标悬停在条上以在工具提示中获取更多信息:

图 3.96:在结果条上悬停以获取更多详细信息
最后,您有“连接子句建议”,这是一个可以用作潜在连接子句的匹配列名列表。

图 3.97:连接子句建议
- 如往常一样,添加一个清洁步骤以预览连接的数据:

图 3.98:连接结果的预览
您现在已将 Returns 表与 Orders_Central 表连接。您已引入 Orders_Central 中的记录以及 return reasons_new 中的匹配记录。此连接显示了已退回的订单数量。您可以根据客户名称、产品类别和产品进一步分析退货情况,并调查退货原因。
并集
并集是将具有类似列结构的多个表合并为单个表的一种方式。与连接不同,在并集中,您需要垂直添加数据行。当您只想将数据附加到具有类似列的其他数据下方而不是连接时,就会执行并集。并集的一个非常常见的例子是,当您有两个包含类似列但分别维护以表示不同年份的表格时。例如,您可能希望将多年订单信息合并到一个综合数据集中。
考虑以下表格。在这里,A 和 B 的并集生成一个包含两个表格中值的单个表格:

图 3.99:两个表的并集
练习 3.11:表的并集
在这个练习中,您将连接 Orders_Central 数据与 Orders_East,将这些表格合并为一个单一表格。这两个表格都包含类似列,包括订单级别的信息,如下面的截图所示:

图 3.100:Orders_Central 的数据预览

图 3.101:Orders_East 的数据预览
您可以看到这两个文件具有相似的列。这里的目的是将这些表格合并为一个单一统一的数据文件。按照以下步骤合并这些数据源:
- 从
Superstore Files文件夹访问两个数据文件:

图 3.102:输入文件的文件位置
您已经在前面示例的工作流程中有了数据源 Orders_Central.csv。
- 添加
Orders_East数据。使用连接–Microsoft Excel并选择此文件。添加此步骤后,流程应如下所示:

图 3.103:文件输入步骤后的工作流程
- 观察到大多数列名都是相同的,这意味着您可以联合这些数据源。不匹配的列在两个表格中都被突出显示,如下面的截图所示:

图 3.104:两个数据集中列不匹配
- 将
Orders_East中的清洁步骤拖动到Orders_Central的清洁步骤上,然后拖动到并集步骤上:

图 3.105:在工作流程中添加并集
- 将添加一个新的联合步骤,其中用彩色列指示两个数据源:

图 3.106:分析联合结果
您可以看到有 13 个不匹配的字段。
- 某些列,例如
Discounts(Orders_Central)和Discount(Orders_East),指的是同一个列。同样,Product(Orders_Central)和Product Name(Orders_East)也是相同的列。将它们合并为一个单独的列,如下所示。

图 3.107:识别相似的列
- 首先选择
Discount,然后悬停在Discounts列上并点击+图标。这将合并两个列为一个:

图 3.108:将不同的折扣列合并为一个单独的列
- 选择
Product Name。Prep 会突出显示具有匹配单词的其他列,建议可能的匹配。现在,也为Product重复相同的步骤。

图 3.109:将不同的产品名称列合并为一个单独的列
Region列在Orders_East中未找到,因此可以从联合结果中排除。为此,悬停在Union Results部分上并移除Region列,如下面的截图所示:

图 3.110:从联合结果中排除一个列
可以通过使用清洁步骤结合Order Date、Order Year、Order Month、Order Day和Ship Date来进行进一步的清洁。

图 3.111:可以使用清洁操作合并的列不匹配
- 完成后,将一个清洁步骤添加到联合操作中预览数据。您可以看到,Prep 已添加一个名为
Table Names的列,以指示数据来自哪个表:

图 3.112:联合工作流程结果
在本节中,您学习了如何使用联合步骤将来自两个源的数据合并。一旦合并,结果数据源可以用于通过可视化进行对比分析。您还看到了如何合并不匹配的列名。接下来,您将了解脚本步骤。请注意,这并不常用,因为它是一个非常高级的步骤,需要使用 R 或 Python 脚本运行复杂的统计程序。因此,这将是一个纯粹的理论讨论。
脚本步骤
一个脚本允许您运行用 R 或 Python 编写的外部程序。有时,可能需要进行一些复杂的统计计算,这些计算无法使用 Prep 完成。因此,Prep 允许您通过脚本步骤将这些程序集成到工作流程中。
在添加脚本之前,您需要使用 Rserve 或 TabPy 为 R 或 Python 程序建立连接。您可以通过访问Help菜单并选择Settings and Performance选项来实现,具体操作为:Help – Settings and Performance – Manage Analytics Extension Connection:
![图 3.113:脚本窗口属性
![图片 B16342_03_113.jpg]
图 3.113:脚本窗口属性
现在,您可以添加 R 或 Python 的服务器详情。完成此操作后,您可以在流程中添加脚本步骤。这将打开以下窗口:
![图 3.114:脚本连接设置
![图片 B16342_03_114.jpg]
图 3.114:脚本连接设置
在这里,您可以添加程序文件并指定需要在数据上运行哪个函数。有关更多详细信息,您可以点击Learn more链接。
流程和数据导出
创建完工作流后,您需要导出数据或共享工作流,以便在 Tableau Desktop 中进行数据分析与可视化。在本节中,您将了解以下导出选项:
-
流程保存选项
-
数据导出选项
流程保存选项:工作流可以保存为两种格式:.tflx和.tfl。如果您单独工作并且所有数据都在您的系统中,您可以将流程保存为 Tableau Prep Builder 流程(.tfl)文件格式。如果您想与使用的数据共享流程,请使用.tflx格式,它将所有在流程中使用的底层本地文件(如 Excel、文本或 Tableau 提取文件)组合或打包成一个共享的单个流程文件。请注意,只有本地文件可以打包到流程中。数据库连接的数据不包括在内。
要保存流程,请点击File菜单,选择Save As,并选择所需的格式。
![图 3.115:保存工作流
![图片 B16342_03_115.jpg]
图 3.115:保存工作流
下一个练习将详细探讨数据导出选项。
练习 3.12:导出数据
在 Prep 中完成数据转换步骤后,最后一步是导出这些数据,以便可以用于开发可视化。Output步骤允许您以多种格式导出数据。在本练习中,您将使用Output步骤导出数据。
- 从上一个示例继续,通过点击
+并选择Output来在Union步骤中添加一个Output步骤:
![图 3.116:添加输出步骤
![图片 B16342_03_116.jpg]
图 3.116:添加输出步骤
完成此操作后,您将看到以下窗口:
![图 3.117:输出步骤属性
![图片 B16342_03_117.jpg]
图 3.117:输出步骤属性
- 按照以下截图所示保存输出:
![图 3.118:保存流程输出的格式
![图片 B16342_03_118.jpg]
图 3.118:保存流程输出的格式
在这里,您将保存为File格式,但了解其他格式也很重要。
- 将其保存为 Tableau Server 上的
已发布数据源、数据库中的 SQL Server 等数据库表或其他地方,如下所示:

图 3.119:在 Tableau Server 上保存输出的文件格式
- 选择
文件,然后选择要保存到的文件夹。输入输出名称,并将输出类型设置为 CSV。你还会看到另一个选项,.hyper格式,它可以在 Tableau Desktop 中用作提取。

图 3.120:保存输出的 CSV 文件格式
- 点击
运行流程并保存输出。

图 3.121:运行流程
- 完成后,导航到文件夹位置并检查文件:

图 3.122:工作流程输出预览
- 当输出类型为 CSV 时,你在图 3.122中看到的
完整刷新选项将在流程再次运行时覆盖输出文件。如果选择.hyper输出格式,你也可以选择将新数据追加到现有的提取中。

图 3.123:向现有已保存输出添加新输出
现在你已经了解了不同的数据转换方法,是时候在一些基于项目的场景中进行一些实际操作练习了。
活动 3.01:寻找订单量最高的月份
作为一家店铺的经理,你可能遇到过想要通过销售额来评估店铺绩效的情况。因此,分析产品的销售模式非常重要。此外,你还可以识别出与其它产品相比销售更多的产品,这种分析有助于进一步增加它们的销售额。此外,你还想了解产品在不同月份的销售是否存在模式。如果存在模式,则可以进行分析并用于设计强大的营销策略,以提升店铺的销售和收入。
通常,订单信息与产品信息分开存储,这是为了保持数据优化。
注意
在本活动中,你将使用的数据存储在Activity File.xlsx中。Orders工作表包含订单 ID和产品类别。你可以从本章的 GitHub 仓库下载 Excel 文件,链接为packt.link/iWtp4。

图 3.124:订单工作表预览
如你所见,订单 ID列是每个订单的 ID、月份和年份的组合。产品类别是一个 ID 列。更多详细信息可以在产品类别工作表中找到:

图 3.125:产品类别工作表预览
要成功完成这个活动,你需要应用你对拆分、连接和清理的知识来识别重要的销售趋势。具体来说,你需要回答以下问题:
哪个月份和年份组合的订单量最高?
哪个产品类别的订单量最高?
注意
本活动的解决方案可在此处找到:packt.link/CTCxk。
活动三.02:数据转换
现在你已经了解了各种产品的趋势,分析客户信息以更好地理解客户对每种产品的行为将非常有用。通过这次分析的结果,你可以设计定制的优惠和优惠券,以增强客户的购物体验。这也有助于建立与客户的品牌亲和力,最终可能导致销售额的增加。在这个活动中,你将结合客户信息与之前的工作流程,以获得订单、产品和客户的统一视图。你将继续使用之前活动中的同一 Excel 工作表来完成这个活动。
客户订单信息存储在CustomerOrders工作表中,如下截图所示:

图 3.126:CustomerOrders 工作表预览
你可以看到数据以宽格式存储,即它以横向方式分布在每个客户的各个年份中。你需要对这些数据进行转置才能在工作流程中使用。
接下来,你必须将此信息与CustomerNames工作表连接起来,该工作表如下所示:

图 3.127:CustomerNames 工作表预览
在这个活动中,你的目标是根据订单数量识别前五名高价值客户。
你还需要导出这些数据,以便你可以在 Tableau Desktop 中使用可视化更好地分析它们。

图 3.128:活动 2 输出工作表预览
注意
本活动的解决方案可在此处找到:packt.link/CTCxk。
摘要
在本章中,你学习了如何连接到各种数据源。连接到数据后,你学习了如何使用数据概览来分析它。然后,你学习了使用各种方法来清理数据,例如过滤、创建计算、分组和拆分。数据清理是有效数据分析的前提,你将在本书的剩余部分使用这些方法。
一旦你清理了数据,你研究了使用聚合来分组数据的方法,然后学习了如何使用转置来转换数据。你还使用了连接和合并选项来结合多个数据源。最后,你学习了如何保存、共享和导出你的工作流程和数据。
本章的关键收获是如何根据项目需求高效地转换数据,使其适合可视化。在下一章中,你将使用在本章中学到的技能,例如聚合、连接和分组,在 Tableau 中创建图表。
第四章:4. 数据探索:比较和组合
概述
在本章中,你将在 Tableau 中创建你的第一个图表,并处理一些基本和中级图表,例如树状图、嵌套条形图和堆叠面积图。你将学习如何为特定场景选择最佳的图表,查看创建趋势报告的最佳方式,并探索度量之间的比较(使用嵌套条形图和子弹图)。然后,在本课的最终活动中,你将通过分析过去十年新加坡车辆人口审计数据来将所学知识付诸实践。到本章结束时,你将熟悉使用条形图、面积图和标记卡片,这些卡片用于向图表和视图中添加上下文细节。
简介
到目前为止,你已经为你的可视化准备了、导入并操作了数据。考虑到 Tableau 是一个商业智能和可视化工具,现在开始创建你的第一个图表是很自然的。然而,在你能够这样做之前(当然,在你能够创建第五章“数据探索:分布和关系”中将要创建的更高级图表之前),你必须首先学会创建图表的方方面面。
因此,你最初只会创建一些基本的图表,然后最终会处理一些中级图表,例如树状图和嵌套条形图。本章的目标是能够回答诸如“在特定年份,每个子类别通过销售产生了多少利润?”的问题,这基本上是在问“你的总销售额中有多少是由每个子类别产生的?”。通过这样做,本章还教你如何去除复杂的术语并有效地进行数据沟通。
Tableau 是一个直观且灵活的工具。你可以将 Tableau 视为商业智能的 Photoshop。在 Photoshop 中,有多种方式可以以相同的结果处理图像;同样,在 Tableau 中,通常也有多种方式可以创建相同的图表。Tableau 的Show Me面板在大多数时候都非常有用,尽管本书的目标也是向你展示不使用Show Me面板创建这些图表的方法。本章将尝试通过描述何时应该使用图表、为什么图表是有用的以及它们对哪些数据类型有用来简化大多数图表。
整章的设计是为了让读者能够跟随每个练习和活动的详细步骤,包括创建基本和中级图表。但这并不意味着你需要记住这些步骤;相反,尝试理解我们为什么这样做的原因。尽管本章的每个练习步骤都尽可能详细,但鼓励你提出问题,例如,“为什么进行这一步,我能改进这种方法吗?”你可能会发现,你可以用不同的方式获得给定的可视化,同样,随着你发挥创造力,图表会变得更好。
探索维度项之间的比较
在深入图表制作之前,区分维度和度量非常重要。
每个存在于某些数据中的列都与一个数据类型相关联,例如字符串、整数或日期。此外,每个存在于某些数据中的列要么是维度,要么是度量。维度是定性或分类数据,例如名称、地区、日期或地理数据,并且这些列具有不同值的类别。另一方面,度量是可汇总的定量值。
考虑以下情况:一个Country列包含国家名称,如加拿大、印度和西班牙。你能对这些地区求和吗?加拿大、印度和西班牙的总和有意义吗?不,没有意义,所以地区是一个维度。同样,可以应用数学函数(如求和、平均值、最小/最大值等)的数据是度量。因此,一个经验法则是:可以应用数学函数的列是度量的列,而无法应用函数的数据是维度的列。
在本书中,每当提到度量时,意味着图表将包含视图中的数值/定量数据,而每当提到维度时,我们将使用定性/分类数据在视图中。
柱状图
柱状图是一种多功能的图表类型,它使得快速理解数据变得容易,适用于抽查或为某些分类数据添加部分总比较。没有其他图表能比得上柱状图的灵活性、易理解性和可用性。柱状图中柱子的长度代表该分类变量的比例方面。柱状图的直观性使其成为最常用的图表之一;它为我们提供了对数据的准确洞察。Tableau 中的柱状图可以使用零个或多个维度和一或多个度量。
注意
本章的练习将使用预装在每个 Tableau Desktop 安装中的示例Superstore数据集。我们版本的 Tableau Desktop 还包含另一个Sample – Superstore数据集,数据截止到 2019 年;Tableau 最近更新了数据文件,也包含了 2020 年的数据,如果你使用的是 Tableau Desktop 的最新版本,你将拥有这些数据。所以,如果你的指标/图表与我们的不完全相同,请不要担心。我们的目标是教会你开发这些图表、报告和仪表板所需的技能,而不是让你复制我们的精确图表。
练习 4.01:创建条形图
作为你组织的商业分析师,一位利益相关者要求你创建一个报告,使用条形图显示各个类别和细分市场的总销售额和利润。你将使用Sample – Superstore数据集来可视化数据。
数据集:Superstore
数据集下载链接:packt.link/cX32T。
注意
在 Tableau 中,连续字段是绿色的,当它们是离散时,它们是蓝色的。
以下步骤将帮助你完成这个练习:
-
在你的 Tableau 实例中加载
Orders表从示例Superstore数据集。 -
点击右上角的
Show Me面板,并将鼠标悬停在条形图上。你会观察到它说对于水平条形,尝试 0 个或更多维度|1 个或更多度量值。

图 4.1:Show Me 面板中的条形图
在这个练习中,你将从一个没有维度只有一个度量值开始,然后继续添加维度到你的视图中。
- 将
Sales拖到Rows(用于垂直条形图)或Columns(用于水平条形图)。

图 4.2:更改聚合
当你将Sales拖到 Columns/Rows 架上时,默认聚合会更改到 SUM(Sales)。
- 点击
Columns/Rows架上的SUM(Sales)胶囊,将聚合从SUM(Sales)更改为任何其他聚合平均。

图 4.3:销售数据的条形图
在前面的屏幕截图中,请注意整个商店的总销售额约为$2.3M,这是我们在示例 Superstore 数据集中的最粗粒度指标。接下来,你将更改条形图的粒度。
- 要做到这一点,请向你的视图中添加一个维度。将
Category维度添加到我们的Columns架上。当你将Category维度添加到视图中时,你会得到三个条形来表示每个类别。因此,你刚刚将你的粒度从所有数据的销售总额更改为每个类别的销售总额。
为了提高可读性,还可以将Measures数据面板中的Sales添加到Label Marks卡中。正如我们所看到的,SUM(Sales)现在按类别划分:

图 4.4:按类别销售
前面的图表使用了一个维度和一个度量,因此我们可以看到家具、办公用品和技术的总销售额分别为$742,000、$719,000 和$836,000。然而,如果我们想更详细地研究这些类别的总销售额,该怎么办呢?我们可以通过添加更多的维度或度量使其更加细化。让我们在下一步探索我们的选项。
- 将“细分市场”拖到“列”轴。
你会注意到按类别划分的销售现在被细分为按细分市场和类别的销售。我们刚刚为我们的视图添加了另一个粒度级别:

图 4.5:按类别和细分市场的销售额
在前面的图中,你可以看到尽管“技术”的销售额最高,但所有三个类别的“企业”和“家庭办公室”细分市场表现并不理想,需要引起注意。由于类别的总销售额现在被分割,这让你对每个细分市场(即“消费者”、“企业”和“家庭办公室”)的销售数量有了更多的了解。现在你了解了更详细的销售额,你还可以找出每个类别和细分市场获得的利润金额。
- 将另一个度量“利润”添加到“行”轴。一旦将度量拖放到“列”轴,你就可以看到为利润添加了一个新行:

图 4.6:按类别和细分市场的销售额和利润
如你所见,从“家具”获得的利润非常少,而从“技术”获得的利润却非常多。这将有助于我们做出更好的商业决策,因为我们现在知道,在“技术”和“办公用品”上投入更多将更有利可图。
当你以某种方式创建条形图,无论是水平还是垂直,你有时会发现,如果你的仪表板设计或故事板设计(故事板是使用多个可视化/仪表板来传达故事的地方)的排列不同——比如说,垂直而不是水平,那么它将更加美观。有多种方法可以改变对齐方式;在下一步中,我们将展示手动方法。
- 将两个“列”维度拖到“行”轴,反之亦然。或者,Tableau 通过在我们的工具菜单中提供一个“交换”按钮,使我们能够轻松地交换东西。
最终输出如下:

图 4.7:水平对齐的条形
在这个练习中,我们探讨了如何通过增加视图的粒度来添加更多上下文和数据,而不会过于杂乱。
这部分关于单维或多维项目条形图的讨论就到这里。接下来,我们将通过条形图和折线图来探索时间上的比较。
探索时间上的比较
作为分析师,利益相关者最常见的要求之一是关于比较某些 KPI/指标随时间的变化(例如,季度收入同比增长)。在本节中,您将使用日期维度创建图表,您可以使用这些图表比较一定时间段的 KPI。您将首先使用柱状图比较指标,然后使用折线图进行比较 KPI。
练习 4.02:创建时间序列数据的柱状图
想象您是一位被要求提供关于您组织在不同分段(即 消费者、企业 和 家庭办公室)不同时间段总销售的报告的商业分析师。使用 Tableau 提供的示例 Superstore 数据集来可视化图表并显示输出。
执行以下步骤以完成练习:
-
在您的 Tableau 实例中加载示例
Superstore数据集中的订单表。 -
将
销售拖动到行面板上。 -
将
订单日期添加到列面板上。Tableau 将自动创建一个折线图(将在下一练习中详细介绍)。

图 4.8:按时间序列的柱状图作为折线图
前面的图显示了以线形图形式按年度展示的产品销售。要将标记从线形图更改为柱状图,首先点击 标记 面板上的下拉菜单,然后选择如图所示的 柱状图。视图可以读作按年销售。
- 为了提高可读性,通过将
销售从度量数据面板拖动到标记卡中的标签来向柱状图添加标签:

图 4.9:按年份销售(时间序列柱状图)
如您所见,通过添加标签,您可以得到各自年份的确切销售值。但您仍然不知道每个分段随时间获得的销售值。您将不得不将视图的粒度从按年销售更改为按分段按年销售。
- 要实现这一点,将
分段拖动到列面板上。
视图会根据您在 列 面板上放置 分段 的位置而变化很大。如果您将 分段 放在 订单日期 之后,您的视图将显示为按年按分段销售,如下所示:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_10.jpg)
图 4.10:按时间段分段的柱状图
从前面的图中可以看出,多年来一直呈渐进增长,您还可以看到各分段的精确销售值。尽管您得到了想要的数据,但以规范的方式呈现它也很重要。如果您将 消费者 多年的数据放在一起,并将 企业 和 家庭办公室 的数据放在一起,这将更有用且易于理解。
- 要做到这一点,请将
分段放在订单日期之前。您的视图将显示为按分段按年销售,如下所示:

图 4.11:按年份和细分市场销售
在 图 4.10 中,您有按年份和细分市场的销售,而在 图 4.11 中,您有按细分市场和年份的销售。这允许任何利益相关者快速查看每个细分市场的销售趋势。如您所见,企业 从 2017 年到 2018 年的增长相当可观,这在之前的屏幕截图中并不容易理解。
在这个练习中,您回顾了随时间变化的条形图,并练习了为您的数据添加更多粒度和维度。接下来,您将使用折线图来回顾随时间的变化比较。
折线图
折线图是另一组多才多艺、易于观看、普遍理解的图表。它们自 18 世纪威廉·普莱费尔创建以来一直被使用。它们通过一条线连接多个数据点,通常表示数据的趋势。在 Tableau 中,您至少需要一个日期、一个度量值和零个或多个维度来创建折线图。
离散日期与连续日期的区别
在接下来的练习中,当您在视图中右键单击 日期 维度时,您会注意到您有两个选项用于选择季度。顶部的是离散日期,您将按年份/季度/月/日拥有离散日期。如果您观察以下屏幕截图,您将只有四个数据点——每个离散季度一个,而不是从 2016 年 Q2 到 2016 年 Q3……2019 年 Q1 的数据点。本质上,离散日期是视图中的唯一日期。因此,当您选择离散季度时,视图将只包含唯一的季度,不考虑年份作为日期的一部分。

图 4.12:离散日期
连续日期与离散日期的主要区别在于,连续日期会提供更细粒度的日期。因此,不仅仅是 Q1、Q2、Q3 和 Q4,连续日期还会考虑与季度/月/日关联的年份。在大多数情况下,您会希望使用连续日期,因为利益相关者通常希望按月/季度查看多年来的指标。

图 4.13:连续日期
练习 4.03:创建随时间变化的折线图
作为一名分析师,您的公司品类经理希望您创建一个图表,以便他们可以查看自 2016 年以来所有品类的总利润。他们没有偏好的图表类型,但更喜欢图表的简约风格。在这个练习中,您将逐步详细地解决这个利益相关者的请求,了解如何最好地使用折线图,以及添加颜色或更改视图的详细程度如何为您的图表增添巨大价值。
执行以下步骤以完成练习:
-
如果您还没有这样做,请从示例
Superstore数据集中加载Orders表到您的 Tableau 实例中。 -
与柱状图的步骤类似,将一个度量拖到
Rows面板上。在本练习中,将Profit拖到Rows面板上。 -
接下来,将
Order Date添加到Columns面板。一旦您将Date Time维度添加到您的视图中,Tableau 会自动创建一个折线图(您之前在柱状图视图中也看到了)。
![图 4.14:随时间变化的简单折线图]
![图片 B16342_04_14.jpg]
图 4.14:随时间变化的简单折线图
在图表中,您已按年份绘制了利润,并使用线条连接了这些点。利润从 2016 年的$50,000 增长到 2019 年近$100,000。
这只是一个基本的折线图,但如前所述,目标是学习不仅仅是 Tableau 的基础知识。因此,让我们探索一些为您的折线图提供更多上下文或细节的选项。
-
通过将
Profit从data面板拖动到您的视图中的Label``Marks卡片,为您的折线图添加一个Profit标签。 -
为了使折线图显示按季度而不是按年销售,以便更细致,并帮助您的利益相关者做出决策,请点击
+符号或点击Columns面板中YEAR(Order Date)维度上的箭头,并将粒度从YEAR(Order Date)更改为QUARTER(Order Date)。 -
为了使您的视图更加细致,请将
Segment添加到您的Color或Detail``Marks面板中。您的数据将按段分割,每个段对应一种颜色,正如这里所观察到的:
![图 4.15:按段分的折线图]
![图片 B16342_04_15.jpg]
图 4.15:按段分的折线图
在前面的图表中,您可以清楚地看到,与其它段相比,Consumer段的利润增长速度更快。折线图清楚地描绘了多个年份内按段的趋势。
这就结束了我们对折线图的介绍。本节讨论了随时间变化的折线图、离散日期与连续日期之间的区别,以及如何为您的折线图添加更多颜色或上下文细节。
探索跨度量比较
柱状图是一种允许您将目标/目标比较添加到您的图表/视图中的图表类型。尽管柱状图很有用,但您在用柱状图展示数据时,经常会听到诸如“这与这个 KPI/指标如何比较?”和“那么,我们应该如何处理这些数据?”等问题,因为柱状图未能提供利益相关者所寻求的额外上下文。这正是子弹图表大放异彩的地方,因为它们添加了所需的比较,用于目标/目标/阈值。将子弹图表视为具有历史背景或比较基准的柱状图。
假设您正在为一个项目工作,该项目要求您以条形图的形式展示您的 SaaS 产品的销售数据。您可能收到的第一个问题来自您的利益相关者:“这与我们上一个季度/年份的结果相比如何?我们做得好还是表现不佳?”如果您用子弹图表展示相同的数据,您还可以为想要比较的销售数据添加一个比较点。以下是一个示例子弹图表:

图 4.16:示例子弹图表
在以下练习中,您将创建一个子弹图表来解决该问题,并了解子弹图表对您的报告/演示的影响。
练习 4.04:创建子弹图表
您收到了来自品类经理的另一项请求:他们现在想查看每个子类别如何趋向于 2019 年的销售目标。作为分析师,您的任务是创建一个视图,展示每个子类别 2019 年的实际销售额,同时展示 2019 年的目标销售(以下示例子弹图表中的黑色垂直线)。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_18.jpg)
图 4.17:示例子弹图表
注意
如何使用 Show Me 面板创建子弹图表的相关内容可以在此处研究,但如果书中没有展示如何使用计算字段创建子弹图表(其中您比较 2019 年的销售与 2019 年的目标销售,后者是一个计算字段),那么这本书就不能完全满足您的需求。我们尚未在书中讨论计算字段,但我们将深入讨论它们,在 第六章,探索:探索地理数据 中;现在,我们将尽可能详细地解释此练习的每个步骤。
执行以下步骤以完成此练习:
- 如果您还没有这样做,请从示例
Superstore数据集加载订单表到您的 Tableau 实例中。
将计算字段视为可以用来操纵字段、创建数据子集或从行/列中提取信息的公式。在以下计算字段中,您将创建两个字段:Sales Target 2019 和 Actual Sales 2019。
2019 年销售目标字段将是 2018 年销售数据的 125%。要使用您的销售度量和订单日期创建一个计算字段,首先,导航到订单日期维度,右键单击它。点击创建|计算字段...:

图 4.18 创建计算字段
-
将字段从 "
Calculation1" 重命名为 "Sales Target 2019"。在计算字段窗口中,输入以下公式:If YEAR([Order Date]) = 2019 THEN [Sales]*1.25 END
公式如下读取:如果订单日期的年份是 2019,则将目标销售额设为 2019 销售数据的 125%。

图 4.19:创建 2019 年销售目标字段
-
对
2019 年实际销售计算字段重复相同的步骤,使用以下公式:If YEAR([Order Date]) = 2019 THEN [Sales] END

图 4.20:创建 2019 年实际销售目标字段
- 将
子类别拖到行架上。
下一步将演示Show Me和非 Show Me方法。你将从Show Me面板方法开始。
- 将
2019 年实际销售和2019 年销售目标计算字段拖到列架上:

图 4.21:实际销售与目标销售并排柱状图
在前面的图中,你有两个图表:2019 年实际销售和按子类别划分的2019 年销售目标。如果你仔细观察,你可以看到配件的实际销售 2019 年为60,000,而销售目标 2019为75,000,这是实际销售 2019 年的125%。在下一步中,你将把这两个条形图转换为子弹图。
- 导航到
Show Me面板,然后单击子弹图。
一旦你点击子弹图,你会注意到每个条形都添加了一个黑色参考线。参考线是目标/目标线,它提供了额外的上下文:

图 4.22:子弹图
你刚刚创建了一个子弹图,其中条形代表 2019 年的销售目标,参考线是实际销售。但理想情况下,你希望你的 2019 年销售目标是参考线,因为那是你希望你的子类别努力达到的目标。你将在下一步进行这些更改。
- 如果你的子弹图将
2019 年销售目标作为条形而不是目标线,你可以右键单击x轴,然后单击交换参考线(在后来的 Tableau 版本中可能是交换参考线字段)以将参考线更改为目标销售而不是实际销售:

图 4.23:交换参考线
-
对于不使用
Show Me面板的其他方法,创建一个新的工作表,将子类别拖到列,将2019 年实际销售拖到列,将2019 年销售目标拖到细节标记卡。 -
右键单击
x轴,然后单击添加参考线。在线选项卡中,单击每单元格单选按钮。在值下拉菜单中,选择SUM(2019 年销售目标),并在值下拉菜单右侧的下拉菜单中将它聚合为SUM。将标签下拉菜单从计算更改为无。

图 4.24:编辑参考线
在进行上述更改后,子弹图的最终输出将如下所示:

图 4.25:子弹图
在前面的屏幕截图中,参考线现在是 2019 年的销售目标,而不是最初子弹图表中的“2019 年实际销售”,这实际上很令人困惑。你希望你的利益相关者了解每个子类别离目标有多远。
在这个练习中,您能够使用Show Me面板以及手动添加参考线到您的视图中创建子弹图表。我们还简要介绍了计算字段,我们将在第七章:数据分析:创建和使用计算和第八章:数据分析:创建和使用表计算中进一步介绍。
条形图
与子弹图表类似,此类图表用于您想要比较同一行/列中的两个度量或两个值时。本质上,它添加了每个利益相关者都在您的报告中寻找的比较/目标/目标上下文。它几乎与子弹图表一样工作,主要区别在于,您将使用另一个嵌入在主条中的次要条作为比较点,而不是参考线。
想象一个与子弹图表类似的场景(例如,2019 年美国总统选举)。随着选举人团的投票正在计数,民主党人和共和党人的选票正在向目标席位数 269 冲刺。随着时间的推移和更多选票的计数,实际数字被更新并越来越接近目标数字 269。这是一个很好的例子,说明可以使用如下所示的条形图中的条形图。

图 4.26:示例条形图
练习 4.05:创建条形图
你之前创建的用于跟踪实际销售与目标销售的视图有一个参考点,在没有额外有用文本和解释的情况下,对于利益相关者来说可能会很困惑。品类经理要求你使实际与目标比较更简单。作为一名分析师,在研究了潜在的图表想法后,你确定条形图是一个很好的简单视图。你将使用相同的维度和度量重新创建子弹图表视图,但将使用条形图。你将使用相同的Superstore数据集进行分析。
执行以下步骤以完成练习:
-
如果
Orders表尚未在您的 Tableau 实例中打开,请加载样本Superstore数据集中的Orders表。 -
将
子类别拖动到行架,将2019 年销售目标拖动到列架。 -
将
Actual Sales 2019拖动到视图中,并将鼠标悬停在Sales Target 2019轴上,直到您在轴上获得两个绿色堆叠条形突出显示,然后按照以下方式将Actual Sales 2019拖放到Sales Target 2019轴上:

图 4.27:按子类别划分的销售条形图
在前面的截图中,你刚刚绘制了按子类别划分的销售图表,在下一步中,你将将这些柱状图按实际与目标进行颜色分割,以便实现所需的嵌套柱状图结果。
- 将
度量名称从行货架拖动到左侧的颜色的标记卡片上。一旦这样做,这两个度量值将通过不同的颜色区分开来,并将堆叠在一起:

图 4.28:2019 年实际销售额与目标销售额对比
通过将度量值添加到列,并将2019 年实际销售额和2019 年销售额目标添加到度量值的标记卡片中,你会看到你能够在每个柱状图上堆叠两个柱状图,其中橙色柱状图是2019 年销售额目标,蓝色柱状图是2019 年实际销售额。
- 你还会注意到,这两个度量值都是堆叠在一起的,而不是从零开始。本质上,
2019 年实际销售额柱状图从2019 年销售额目标结束的地方开始,这不是你想要的数据展示方式。要改变这一点,导航到菜单中的分析,选择堆叠标记,然后选择关闭。

图 4.29:关闭堆叠标记
- 尽管当前视图看起来很好,但你还想通过大小来区分
2019 年实际销售额和2019 年销售额目标。通过将度量名称从维度数据面板拖动到大小的标记卡片,如这里所示来完成此操作:

图 4.30:未堆叠的柱状图
前面的截图显示,度量名称已从维度面板添加到大小的标记卡片中。
- 如果你想,你可以交换前景中的度量值。当前视图很好,因为
2019 年实际销售额在前景中,并且正朝着2019 年销售额目标前进,但如果你想改变这个,只需在度量值卡片中交换度量值,并调整柱状图的大小、颜色或宽度:

图 4.31:嵌套柱状图
在前面的图中,蓝色柱状图是2019 年实际销售额,它正朝着目标销售额 2019(橙色柱状图)前进。例如,书架子类别在2019年的实际销售额为30,000,正朝着大约33,000的销售目标前进。
你也可以使用双轴实现相同的嵌套柱状图,但我们将在这下一章中介绍。在这里,我们采用了标准方法,并学习了如何利用度量名称和度量值,这在 Tableau 报告/仪表板构建中起着重要作用。
探索组合快照 - 堆叠柱状图
堆叠条形图实际上是一个条形图,其中包含嵌入在条形中的额外详细级别,其中每个条形代表不同的维度/值。当您想要比较整个维度/值的整体与该维度/值的某个部分时,堆叠条形图非常有用,这些部分实际上是同一条形的不同小部分。想象一下汽车公司产生的收入:作为一个分析师,您希望在一个条形图中展示按汽车/产品类型划分的收入,而不占用太多空间。通过用汽车类型对条形图进行着色编码,您可以创建一个包含大量上下文细节的单个图表。
将堆叠条形图视为显示 总计与部分:

Figure 4.32: Sample stacked bar chart
在下一个练习中尝试创建堆叠条形图。
练习 4.06:创建堆叠条形图
在您直接经理的新要求中,他们希望以条形图格式查看按子类别划分的销售,其中销售子类别按颜色划分细分市场。本质上,经理期望每个子类别都有一个堆叠条形图,并按细分市场分割。您将继续使用 Superstore 数据集来完成此练习。
按以下步骤完成此练习:
-
如果
Orders表还没有在您的 Tableau 实例中打开,请从示例Superstore数据集中加载它。 -
将一个度量拖动到
行面板。此练习使用Sales,但您可以使用自己项目中的任何度量。 -
将
Sub-Category拖动到列面板,现在您将有一个按子类别划分的销售简单条形图:

Figure 4.33: Stacked bar chart – sales by sub-category bar chart
- 要将此条形图转换为堆叠条形图,选择一个维度(无论是
YEAR[Order Date]还是Segment),并将其拖动到如图所示的颜色标记卡:

图 4.34:按子类别和细分市场的堆叠条形图
您现在已经将简单的条形图基本转换为堆叠条形图,因为您已经通过细分市场对多个条形进行了着色或堆叠。椅子 和 电话 是收入最高的子类别,但不清哪个细分市场贡献更多;因此,接下来,您将在堆叠条形图中添加更多元素以提高可读性。
- 将
SUM(Sales)添加为条形图的标签。将Sales从度量数据面板拖动到标签标记卡:

图 4.35:按子类别和细分市场的堆叠条形图
-
您可能会注意到
销售标签在我们的柱状图中占据了大量的空间。它占用这么多空间的原因是销售的单位是十,但考虑到您的大部分销售都大于 1,000,您可以将单位从十更改为千,这样更容易阅读并节省一些空间。 -
要更改
销售数字的单位,导航到标记卡中的SUM(Sales)。右键单击并选择格式化。

图 4.36:格式化销售
- 在对话框的默认部分,点击
数字下拉菜单,选择数字(自定义),将显示单位从无更改为千(K):

图 4.37:格式化销售
堆叠柱状图现在将如下所示:

图 4.38:最终的堆叠柱状图
注意
在前面的图中,您可能会注意到较短的柱状图内部没有嵌入信息。这是 Tableau 的一个限制。当您将鼠标悬停在较短的柱状图上时,Tableau 将显示您所需的信息。
在这个练习中,您学习了如何创建堆叠柱状图。这可能是 Tableau 中构建最简单的图表之一,但当你想要回答关于部分与总量的相关问题时的一个非常有用的选择。
探索组合快照 - 饼图
尽管饼图经常被使用,但在作者的个人经验和数据可视化领域的行业领导者看来,最好在报告/仪表板中避免使用饼图,因为从它们中准确提取见解变得困难。饼图甚至经常让业务中最优秀的人感到困惑。注意以下饼图如何容易地欺骗人们(欺骗人们不是我们作为数据分析师/可视化人员应该做的事情):

图 4.39:示例饼图
饼图的目标是显示品牌 A、B 和 C 的市场渗透率水平。简单的视觉检查可能会让人相信品牌 A 和 C 的市场渗透率相等,但事实上,由于几个百分点的差异,它们之间的差异可能是几百万美元。因此,建议不要使用饼图。尽管如此,如果无法避免使用它们,请记住以下经验法则:如果您的饼图有超过六个标签,您最好创建一个柱状图或堆叠柱状图。
练习 4.07:创建饼图
公司的副总裁今天将在董事会会议上进行演示,他们正在寻求您的帮助,创建一个简单的饼图,显示按部门划分的销售情况。在这个练习中,您将创建您的第一个饼图,并按照副总裁的要求完成要求。您将继续使用Superstore数据集。
以下步骤将帮助您完成此练习:
-
如果样本
Superstore数据集中的Orders表尚未在您的 Tableau 实例中打开,请加载它。 -
将
Sales拖到“行”架上,将Segment拖到“列”架上,这将创建你的标准柱状图:

图 4.40:饼图 – 步骤 1
- 要将柱状图转换为饼图,打开“显示我”面板并点击饼图图标:

图 4.41:使用显示我面板添加饼图
当你将柱状图转换为饼图时,饼图可能太小而无法阅读。
- 为了增加饼图的尺寸,在 Mac 上,你可以按Command + Shift + B来增加尺寸,或者按Command + B来减小尺寸。在 Windows 上,按Ctrl + Shift + B来增加饼图的尺寸,按Ctrl + B来减小饼图的尺寸。另一种增加或减小饼图尺寸的方法是使用我们“标记”卡中的“尺寸”选项卡:

图 4.42:增加饼图的尺寸
- 要向图表添加标签,将
Segment以及Sales拖到你的“标签”标记卡中。将我们的标签大小增加到 15 或更高。你还可以将SUM(Sales)的数值单位更改为千或百万,如前一个练习中讨论的那样:

图 4.43:添加$前缀
进行更改后的最终输出将如下所示:

图 4.44:最终饼图
在前面的屏幕截图中,你能够以饼图的形式展示按段落的销售额。尽管饼图有其缺点,但当标签数量不超过 5-7 个且屏幕上的可用空间非常有限时,饼图可以非常实用。
树状图
与饼图和堆叠柱状图一样,树状图帮助你回答部分与整体类型的问题,但主要区别在于树状图和嵌套柱状图使用矩形来显示层次关系。使用“标记”卡元素如“颜色”和“大小”,你可以更好地分析数据。当一个矩形更大或颜色更集中时,它代表视图中的维度最高值。树状图允许你快速衡量对整体的贡献。与饼图一样,树状图并不总是最佳选择,但根据所需的分析,树状图可以使用上下文标签以提高可读性;它们也是那些可以在视图中绘制数百个数据点的图表类型之一。
想象一个场景,交付运营副总裁要求展示每个州的总体交付情况以及这些州的交付是否准时。使用树状图,你可以比较每个州的交付活动,其中每个州的交付数量通过该州矩形的大小来传达,而延迟交付的比例通过颜色来显示:

图 4.45:示例树状图
练习 4.08:创建树状图
作为一名分析师,你希望在视图中创建一个有利润和无利润州按类别划分的视图,而不使用交叉表。为此练习,你将使用 Superstore 数据集。你需要根据各州的盈利能力对州进行着色,并按总销售额降序排序。你使用树状图的原因是你可以同时使用大小和颜色来传达信息,而不会牺牲任何东西。
执行以下步骤以完成练习:
-
如果你的 Tableau 实例中尚未打开,请打开示例
Superstore数据集。 -
在这个练习中,你有两个度量:
Sales和Profit Ratio。你将使用Sales来确定大小,Profit Ratio来着色树状图。将主要度量(在这种情况下,Sales)拖动到SizeMarks卡片,将次要指标Profit Ratio拖动到ColorMarks卡片:

图 4.46:将销售添加到树状图中
注意
如果你使用的是 Tableau 2020.1 之后的版本,你可能需要在这一步选择 Profit 而不是 Profit Ratio。
- 将
State拖动到你的DetailMarks卡片中,这将使你的数据更加细化,并以大小和颜色表示各个州。
当你在 Tableau 2020.1 版本中将 State 添加到 Detail Marks 卡片时,你会看到 Country/Region 会自动添加,因为 State 是层次结构的一部分。由于 Country/Region 并没有为你的视图增加任何价值或细节,所以请从 Detail Marks 卡片中移除 Country/Region。在此过程中,将 State 拖动作为标签:

图 4.47:按利润率着色
在前面的图中,你已按州表示了销售额和利润率。加利福尼亚州和纽约州的销售额最多(更大的矩形意味着更多的销售额),但像密歇根州这样的州的利润率更高(更深的蓝色意味着更高的利润)。
- 你可以在这里停止分析/绘图,这将是你表示每个州及其利润率的树状图。然而,在这种情况下,你将在视图中添加另一层细节。将
Category拖动到Rows档,并在工具栏中,将视图从Standard更改为Entire View,如图中所示:

图 4.48:按类别划分的树状图
你差不多完成了,但你用于图表中的颜色范围有点令人困惑,因为利益相关者只想知道一个州是否盈利。他们既不需要也不想知道每个州的精确盈亏比率。你可以在稍后添加那些精确的“利润率”细节到工具提示中。
-
导航到“标记”卡,并点击“颜色”选项卡。勾选“阶梯颜色”复选框,并将值设置为
2步。注意
如果你使用的是 2020.1 之后的 Tableau 版本,你需要选择“编辑颜色”来找到“阶梯颜色”选项。
-
接下来,选择你想要的调色板,并点击“<< 高级”。勾选“中心”复选框,并将其值设置为
0(绿色代表盈利州):

图 4.49:按类别和州划分的树状图,使用红/绿颜色编码
最终输出如下:

图 4.50:按类别和州划分的树状图,使用红/绿颜色编码
这种树状图视图(图 4.50)与你在上一步中创建的默认树状图(图 4.48)的主要区别在于,在最新的树状图中,你不再使用渐变色来对利润率进行颜色编码,而是将亏损用红色表示,将盈利用绿色表示,这样利益相关者可以更快地查看最盈利和最不盈利的州。
如果你仔细观察,你会发现加利福尼亚州是所有类别中销量最高的州,如果你想了解该州的利润率,你只需将鼠标悬停在任何一个州上即可。
探索趋势数据的组成
面积图
面积图是可用的最令人视觉愉悦的图表之一,并且经常用于报告节奏。面积图本质上是由线图和柱状图组合而成的,因为它们显示了总量的比例之间的关系。
想象一个用例,其中一家电子公司的分支机构经理想要查看他们所属系列在各个电视类别中的总销量。你可以通过使用堆积柱状图来满足这一需求,但使用面积图,你还可以添加时间趋势,这正是你将在下面的练习中探索的内容。

图 4.51:示例面积图
注意:关于面积图的注意事项
当你使用面积图作为堆叠面积图时,它很容易被误解——特别是如果你使用堆叠面积图表示百分比。例如,假设你正在创建一个电子邮件营销报告,其中包含不同活动的转化率。活动 1 的点击通过率(CTR)为 3%,活动 2 的 CTR 为 7%,活动 3 在特定月份的 CTR 为 6%。该月的真实 CTR 为 5.3%,但使用堆叠面积图,所有活动的 CTR 可能显示为 16%,这是事实上的错误。只是要注意这里的注意事项。
练习 4.09:创建面积图
财务运营总监向你寻求帮助,希望了解每个子类别在每个月的销售趋势。总监想知道他们在 7 月还是 8 月销售得更多。作为分析师,你的任务是创建一个按月和按年销售趋势的颜色编码面积图。你将继续使用 Superstore 数据集来完成此练习。你还将在此练习中探索连续和离散面积图,使用 订单日期、子类别 和 销售额。
执行以下步骤:
-
如果你的 Tableau 实例中尚未打开,请打开示例
Superstore数据集。 -
将
订单日期拖动到列桶中,并通过点击订单日期瓶盖上的箭头并选择连续的月份(你将首先创建一个连续堆叠面积图)来将粒度从年更改为月。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_52.jpg)
图 4.52:连续月份选择
-
将
销售额拖动到行桶中。一旦你将其拖放到行桶中,就会创建一个折线图。 -
将
子类别从数据面板拖动到颜色标记卡上,然后使用下拉菜单将标记类型从自动更改为面积:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_54.jpg)

前面的图表表示连续堆叠面积图。如果你不想区域堆叠在一起,你可以关闭堆叠。
- 在菜单中导航到
分析并点击堆叠标记|关闭。同样,你可以按照相同的步骤将堆叠标记重新打开:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_53.jpg)
图 4.54:关闭堆叠标记
某人想要在面积图中关闭 堆叠标记 的唯一原因可能是他们想查看特定维度(在本例中为子类别)的个别趋势。未堆叠面积图的限制在于它存在隐藏数据点的风险,因为背景区域所代表的内容并不清晰:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_55.jpg)
图 4.55:面积图
- 要将面积图更改为离散图,将
订单日期的类型从连续更改为离散:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_04_56.jpg)
图 4.56:离散日期选择
使用离散图表时,对于每年的“月份”,现在你只显示不考虑年份的离散月份。与连续堆叠面积图相比,这是一个更细粒度的视图。你将更改轴刻度线,从$50,000 增加到$25,000 的增量。
- 要更改轴刻度线,右键单击“销售额”轴并单击“编辑轴…”。

图 4.57:编辑坐标轴
- 在“编辑坐标轴[销售额]”中,点击“刻度线”(在后续版本中可能为“主要刻度线”)并选择“固定”,然后将“刻度间隔”设置为
25000,如图所示:

图 4.58:设置主要刻度线
最终输出如下:

图 4.59:最终的堆叠面积图
在前面的屏幕截图中,每个子类别都堆叠在一起,而销售趋势则按月份显示。从给定的图表中,你可以轻松地看出 11 月是Superstore数据集收入最高的月份。
在这个练习中,你学习了何时以及何时不使用面积图,比较了堆叠与非堆叠面积图,并研究了连续和离散面积图的最佳使用案例。
活动四.01:可视化新加坡乘用车的增长
最近,新加坡政府任命了一位新的车辆检查部门负责人。这个新成立的部门将分析过去几十年的车辆销售情况,研究增长/趋势,并制定政策和规则,以进一步帮助政府减少排放。作为入职初期的一部分,车辆检查部门负责人要求查看每个车辆类别的销售趋势,包括公交车、出租车、汽车和货车。他们期望分析师创建一个单一视图,展示这些车辆类别的销售趋势。作为一个分析师,考虑到车辆检查部门负责人期望看到多个类别和年份的趋势,你决定使用带有颜色编码的面积图,以便更容易阅读。
在这个活动中,你将通过创建多个图表来展示你在本章中学到的技能。你将使用SG_Annual_Vehicle_Population数据,可以从packt.link/wLR2x下载。
执行以下步骤以完成此活动:
-
导入并打开下载的数据。
-
将“类别”拖放到“列”板和“数量”拖放到“行”板。
-
将“年份”拖放到“列”板。
-
将“类别”拖放到“颜色”标记卡中。
-
将“年份”拖放到“标签”标记卡中。
-
将“轴”标题更改为仅“审计年份”。
-
编辑坐标轴,将“主要刻度线”更改为“固定”并设置间隔为
1。 -
将工作表标题更改为“活动 4.1”。
预期输出如下:

图 4.60:活动 4.01 预期输出
注意
这个活动的解决方案可以在以下链接找到:packt.link/CTCxk。
摘要
这就结束了本章。在本课中,你创建了 Tableau 中的第一个图表,从条形图开始,用于跨维度的比较,然后是折线图来展示时间上的比较。你还了解了子弹图和条形图之间的区别,以及探索度量比较时的最佳用例。
你进一步组合了快照,通过处理三种主要的图表类型:堆叠条形图、饼图和树状图。在探索树状图时,你不仅仅使用了一个标准的树状图,而是通过利用多个度量添加了一个额外的层次,其中主要度量Sales用于矩形的尺寸,次要度量Profit ratio用于利润/亏损,使用了两种不同的颜色。不同的颜色使得利益相关者更容易识别超市类别中的盈利状态。
虽然我们确实讨论了时间序列数据的折线图,但我们还决定通过一个面积图问题来工作,并研究堆叠(无法聚合百分比)与非堆叠(隐藏数据风险)面积图的问题。我们简要地提到了连续堆叠面积图与离散堆叠面积图的区别。我们通过处理新加坡年度车辆人口审计的新数据集来结束本章,并创建了一个面积图来理解过去 15 年来新加坡车辆增长的不同趋势。
在下一章中,我们将进一步前进,处理双轴图、直方图、箱线图和散点图,以及讨论一些与参考线相关的统计信息以及何时使用不同的参考线模型。将下一章视为 Tableau 的高级图表制作。
第五章:5. 数据探索:分布和关系
概述
本章建立在你在第四章,探索比较和组合中创建的基本图表之上。你还将涵盖趋势线和参考线等高级主题,并看到一些它们经常被使用的例子。到本章结束时,你将能够创建分布图表,展示数据点之间的关系,并创建如双轴和象限图等高级图表类型。
简介
在前面的章节中,你已经学习了各种图表方法,这些方法依赖于视图中的维度和度量。然而,在某些时候,尤其是在商业场景中,你可能只有度量可以工作。在本章中,你将学习如何创建没有维度的图表,以及具有多个度量的图表。你将学习创建度量之间的关系,并了解高级 Tableau 技能,如趋势线和参考线,如何有助于更好地向利益相关者展示洞察力。
首先,你将使用直方图、箱线图和须图来探索单个度量的分布。然后,你将查看两个度量的分布,使用散点图和带有趋势线的散点图(线性、对数和指数)。接下来,你将查看多维度/度量的高级可视化,如双轴图和象限图。
探索单个度量的分布
直方图和箱线图等分布图用于显示连续和数值型定量数据的分布。然而,正如前一章所讨论的,条形图在绘制离散和分类数据时使用。在这些部分,你将专注于离散和分类图表类型。
创建直方图
直方图表示频率分布。它显示了值的分布,并有助于识别任何异常值。直方图将你的连续测量值分成测量范围,并将它们放入称为桶的组中。每个桶本质上是一个直方图中的条形,表示落在该桶内的值范围的计数。
如果你创建一个公司所有员工的薪资直方图,其中每个桶的范围是 10,000 美元,你的直方图将表示有多少员工在赚取 0-10,000 美元、10,001-20,000 美元、20,001-30,000 美元等。
在 Tableau 中创建直方图很简单,因为它是Show Me面板中的 24 种默认图表类型之一。每次你在 Tableau 中创建直方图时,都会创建大小相等的桶/组,Tableau 为你在创建图表时使用的度量创建一个桶维度(为你的桶范围创建的一个本地临时维度)。
以下图示显示了一个样本直方图。在这里,您正在查看总订单数量的分布,区间大小为 1。本质上,从以下直方图中,您可以看到有899个订单只有 1 件商品,有2,402个订单有2件商品,依此类推:

图 5.1:一个样本数量直方图
以下截图显示直方图选项是“显示 我”面板的一部分:

图 5.2:作为“显示我”面板一部分的直方图选项
在创建直方图时,Tableau 会自动在“数据”面板中添加“数量(区间)”维度,如下所示:

图 5.3:添加到数据面板的“数量”(区间)
现在完成 5.01 练习,看看在实际操作中如何创建直方图。
练习 5.01:创建直方图
作为一家电子商务商店的分析师,您的经理希望更好地了解每个订单的大小,要求您创建一个图表,显示按订单数量统计的订单数量。表示频率分布的更好方法之一是使用直方图。在这个练习中,您将使用Sample – Superstore数据集创建一个“按数量统计的订单数量”分布视图,并在过程中学习如何在 Tableau 中创建直方图的精确步骤。
注意
您可以在以下链接找到Sample - Superstore数据集:community.tableau.com/s/question/0D54T00000CWeX8SAL/sample-superstore-sales-excelxls?language=en_US.
或者,您也可以在我们的 GitHub 仓库中找到数据集:packt.link/21LCj.
Sample – Superstore数据集是 Tableau Desktop 默认加载的数据集。该数据集代表了一个虚构的商店,包含订单的维度,如订单日期、发货日期、国家、产品类别/子类别/制造商/名称、细分市场和客户名称,以及如折扣、利润、数量和销售额等度量。
执行以下步骤来完成此练习:
- 将
Sample – Superstore数据集中的Orders表加载到您的 Tableau 实例中。![图 5.4:加载 Sample – Superstore 数据集]()
图 5.4:加载 Sample – Superstore 数据集
如前所述,直方图用于连续和数值数据,因此在这种情况下,您有折扣、利润、数量和销售额。在这个例子中,您将使用数量来创建直方图。
- 双击“数量”或将“数量”度量拖动到“行”面板。默认情况下,Tableau 选择水平条形图作为首选的图表方法,如下所示:
![图 5.5:总销售额的单条柱状图
![img/B16342_05_05.jpg]
图 5.5:总销售额的单条柱状图
正如你所见,在Show Me面板中,对于数量度量只有两个图表选项可用。
- 选择
直方图,你将得到以下视图:
![Figure 5.6:Tableau 默认的直方图箱
![img/B16342_05_06.jpg]
图 5.6:Tableau 默认的直方图箱
正如你所见,Tableau 现在在数据面板中创建了一个数量(箱)维度,并自动决定最佳箱大小。在你的当前视图中,不清楚第一个箱是在1.5还是2.0结束。
- 为了提高可读性,将箱大小编辑为整数。在
数据面板中右键单击数量(箱)并选择编辑...:
![Figure 5.7:编辑箱大小
![img/B16342_05_07.jpg]
图 5.7:编辑箱大小
在编辑箱[数量]窗口中,此数据集的箱大小为1.77,小于2,这使得我们的第一个箱结束位置不明确。
- 将箱大小更改为整数值(在这种情况下,更改为
1以提高可读性)。这将向最终用户显示发票中包含一个项目、两个项目等的订单数量:
![Figure 5.8:更改箱大小
![img/B16342_05_08.jpg]
图 5.8:更改箱大小
接下来,你将进行一些格式更改。正如你所见,x 轴从零开始,结束于最大箱之后的一个箱。将其编辑为从一箱开始,到最大箱大小结束,以便你有一个连续的轴。
- 要编辑轴,右键单击x轴并点击
编辑轴。接下来,从编辑轴窗口中选择固定范围,输入1作为固定起始,并保持固定结束不变,如下所示:
![Figure 5.9:编辑箱的轴
![img/B16342_05_09.jpg]
图 5.9:编辑箱的轴
- 通过使用Ctrl + 拖动(适用于 Windows)或Option + 拖动(适用于 Mac),将
CNT(数量)药丸从行面板拖动到标签面板进行最后一次编辑,为单个箱添加标签。最后,将工作表标题重命名为数量直方图,如下所示:
![Figure 5.10:最终直方图
![img/B16342_05_10.jpg]
图 5.10:最终直方图
你已经学会了如何使用频率分布来创建直方图,并回答了以下问题:有多少销售/订单包含一个项目、两个项目等等?
在前面的屏幕截图中,直方图表示包含一个项目、两个项目等的订单数量。有1,230个订单包含5个项目,572个订单包含6个项目。
接下来,你将学习箱线图(B&W)的重要性以及何时在你的图表中使用它们。
箱线图
每当你想展示分布时,除了直方图外,黑白图也是你可选的另一种选项。当你想比较两个维度并排时,箱形图特别有效,其中一个维度在x轴上,另一个在y轴上。例如,美国职业棒球大联盟击球手的击球率。在学习创建黑白图(也称为箱形图)之前,了解它们的重要性、如何阅读它们以及何时最好使用它们是很重要的。
下面是黑白图的样子:

图 5.11:样本黑白图
图像的箱形部分代表第一和第三四分位数,也称为四分位距(IQR)。四分位距的计算方法是 Q3 减去 Q1(Q3-Q1)。左边的触须代表第一四分位数的最小值,右边的触须代表第四四分位数的最大值。箱形中间的线是中位数(Q2),它是数据集的中间数。位于线左侧的数据点是小于中位数的数字,而位于右侧的是所有大于中位数的数字。接下来,你将开始使用超市数据集创建箱形图。
当你想让你的分布识别异常值时,黑白图特别有用。例如,下一个截图显示了两个县的年龄分布:费城县和莫拉戈县。上面的图表示费城,下面的图表示莫拉戈。费城的 IQR 在 23 到 64 之间,莫拉戈的 IQR 在 15 到 43 之间。但截图也有助于识别异常值,因为两个县都有 100 岁及以上的人口部分。这就是黑白图可以如此有用的地方。

图 5.12:两个县的黑白图
练习 5.02:在没有 Show Me 面板的情况下创建箱形图和触须图
就像直方图一样,黑白图是 Tableau 中的Show Me面板的一部分,但在这个案例中,你将学习如何使用参考线创建箱形图。
执行以下步骤来完成此练习:
-
在你的 Tableau 实例中加载
Sample – Superstore数据集中的Orders表。 -
创建一个只有一个维度和一个度量(条形图在第四章:数据探索:比较和组合中讨论过)的条形图。选择
Profit作为度量,产品Segment作为维度(按Segment查看Profit)。 -
将
Segment拖到以下截图所示的Columns货架,将Profit拖到Rows货架:

图 5.13:按 Segment 的利润条形图
-
将分布维度添加到
DetailMarks卡中。在这种情况下,你正在查看按Segment和订单年份分布的Profit。现在,将订单年份添加到Detail卡中。注意
Ctrl + 拖动(适用于 Windows)或 Option + 拖动(适用于 Mac)将“订单日期”拖动以打开“下放字段”窗口,这将允许您在“标记”卡上选择“订单日期的年份”。
![图 5.14:堆叠条形图]
![img/B16342_05_14.jpg]
图 5.14:堆叠条形图
一旦将“订单日期的年份”添加到您的“详细标记”卡,就会创建一个堆叠条形图,其中每个堆叠代表订单日期的年份。
- 通过将标记类型从“自动”更改为“圆圈”(在“标记”面板中),将此堆叠条形图转换为点图以用于您的黑白图:
![图 5.15:按细分利润的散点图]
![img/B16342_05_15.jpg]
图 5.15:按细分利润的散点图
如果您不将标记类型转换为点图,您将无法看到如下所示的黑白图:
![图 5.16:未将标记类型从条形转换为圆圈的问题]
![img/B16342_05_16.jpg]
图 5.16:未将标记类型从条形转换为圆圈的问题
- 现在,要创建黑白图,右键单击
y轴并选择“添加参考线”:
![图 5.17:从轴添加参考线]
![img/B16342_05_17.jpg]
图 5.17:从轴添加参考线
- 在“添加参考线、带或框”对话框中,选择“箱线图”。您可以尝试调整选项,比如改变填充颜色、样式或边框和须须的粗细:
![图 5.18:参考线选项]
![img/B16342_05_18.jpg]
图 5.18:参考线选项
如前所述,IQR 代表四分位距,即第一四分位数和第三四分位数之间的所有数据点。在“箱线图”对话框选项框中,“1.5 倍 IQR 内的数据”实际上意味着我们要求 Tableau 将图表上的所有数据点都调整到 1.5 倍 IQR 范围内。任何超出范围的数据点将被视为异常值。您将在以下图中通过实际图表探索这一概念:
![图 5.19:按细分利润的黑白图]
![img/B16342_05_19.jpg]
图 5.19:按细分利润的黑白图
箱线图中间的线,即浅灰色和深灰色的交汇处,是中位数。如果您查看整个视图,可以快速比较所有产品细分的中位数,无论中位数大小如何。上须须比 IQR 高 50%,下须须比 IQR 低 50%。如果数据点在箱线和须须之外,这些数据点将被视为异常值,而这个图表允许您快速识别它们,这在直方图中并不那么直接。
接下来,您将了解如何使用“显示我”面板创建箱线图,这是一种更直接的方法。
练习 5.03:使用“显示我”面板创建箱线图
在这个练习中,您将从“显示我”面板创建箱线图。您将继续进行上一个练习,但您可能使用一个新的工作表。
执行以下步骤以完成练习:
-
将
Segment拖动到Columns,将Profit拖动到Rows。这有助于创建条形图。 -
将
YEAR (Order Date)维度拖动到Marks面板上,你希望将其用作分布维度。在这个例子中,使用YEAR (Order Date),如下所示:


图 5.20:带有堆叠条形图的 B&W 图
- 点击
Show Me面板(如前一步所示),然后点击Box and Whisker Plots:


图 5.21:最终 B&W 图
考虑前一个截图中的中位数(箱线图中的中间线)。如果你横跨视图查看,可以快速比较所有产品段的中位数,无论中位数大小如何。如果一个数据点位于 B&W 之外,这些数据点被认为是异常值。
当数据正确时,箱线图可以非常强大。箱线图可以在一个图表中传达大量信息。
这完成了使用单一度量进行的直方图、箱线和须须图活动。接下来,你将探索散点图,这在处理两个或更多度量时非常有用。
多个度量之间的关系和分布
在本章的这一部分,你将探索如何最好地在同一视图中表示两个度量,以及这些图表如何帮助建立两个或更多度量之间的关系。你将首先查看散点图。一旦你覆盖了这些多度量图表的分布部分,你将转向通过讨论双轴图表及其用途来探讨这些度量之间的关系。
两个度量的分布
散点图是由两个到四个度量以及零个或更多维度创建的二维图表。前两个度量用作x轴和y轴,第三个和第四个度量以及维度用于为散点标记添加更多格式和上下文。
散点图在绘制两个可量化度量相对于彼此时非常有用。例如,这可以是销售额与利润或数量与折扣之间的关系。散点图还有助于通过识别异常值和相关点群来发现模式或聚类,这有助于决策。
如果你想要更深入地了解,你还可以向这些图表添加参考线,这可以将散点图分成四个象限(我们将在本章后面的练习中解释如何创建四象限视图)。这使得最终用户更容易指出关系。
创建散点图
你现在将在 Tableau 中创建一个散点图。在这样做的时候,一个度量成为x轴,第二个度量成为y轴。默认情况下,当你将两个度量绘制到你的视图中时,Tableau 将这些度量聚合到视图中的一个点。然后你必须手动解聚合(使度量更细粒度)以创建散点图(如下面的截图所示)。
这是散点图的最终版本,您将使用两个度量量和两个维度创建它:

图 5.22:每个子类别销售与利润的样本散点图
以下练习 5.04 将详细说明这些步骤。
练习 5.04:创建散点图
您的店铺经理要求一份报告,查看店铺中每个子类别销售的总销售额与利润。图表必须标识每个子类别,并使用颜色表示每个子类别所属的总体类别。您将使用Sample – Superstore数据集来满足这一请求。
执行以下步骤以完成练习:
-
在您的 Tableau 实例中加载
Orders表(如果它尚未在您的 Tableau 实例中打开)。 -
选择两个度量来绘制数据点。对于这个练习,这些是
销售和利润。 -
将
利润拖到列架上,将销售拖到行架上:

图 5.23:利润与销售的聚合散点图
一旦您将第二个度量拖到行架上,您就会在视图中看到一个点。默认情况下,Tableau 在将度量从数据面板拖到架子上时始终对度量进行聚合。这里的点代表数据集中所有记录的销售与利润的交集。您必须通过解聚度量来指定图表的详细程度。
- 接下来,您将解聚度量以将您的聚合数据点分解成多个点。您可以通过从菜单栏中选择
分析并取消选择聚合度量来完成此操作:

图 5.24:如何聚合/解聚度量
这将改变图表的详细程度,从数据集中所有记录的一个点到数据集中每个记录的一个点。
- 双击标题进行修订,您的
销售与利润散点图就准备好了:

图 5.25:销售与利润的解聚散点图
在图 5.25中,您可以看到解聚后,数据集中的每个订单都有一个点,而不是只有一个标记/点。视图代表数据集中的每个订单及其每个订单 ID 的销售和利润。
- 重新选择
聚合度量。将详细程度更改为子类别,以便数据中的每个子类别都有一个点。通过将子类别从数据面板拖到详细``标记卡上完成此操作。接下来,将子类别拖到标签``标记卡上,以便更容易理解图表:

图 5.26:每个子类别的总销售额与利润的散点
在图 5.25中,你可以看到当细节级别从每个订单 ID 变为每个子类别时,视图中的散点数减少了。现在有一个标记代表每个子类别。
- 为了给视图添加另一个维度,将
Category添加到ColorMarks面板中,这允许你快速识别子类别。这些类别颜色还充当高亮显示器。最终输出如下:
![图 5.27:彩色编码的子类别散点图
![img/B16342_05_27.jpg]
图 5.27:彩色编码的子类别散点图
图 5.27清楚地显示,Tables子类别带来了大约 20 万美元的销售,但却是亏损的子类别,因为Tables销售亏损约为 2 万美元。另一方面,Copiers的销售额为 15 万美元,利润超过 5 万美元。
考虑到观察这些洞察力有多容易,散点图可以是一个令人难以置信的工具,用于绘制两个度量值之间的对比。通过添加更多视觉元素,它可以转变为一个易于理解且相对容易创建的强大视觉图表。
这就完成了具有两个度量值和两个维度的散点图。接下来,你将探索趋势线,以及 Tableau 中可用的选项。
带有趋势线的散点图
在本节中,而不是关注趋势线所依赖的数学,你将从一个分析师/数据开发者的角度来审视它们,并了解一些在商业中的常见用例。
趋势线用于观察变量之间的关系。例如,它们可以用来查看力和加速度之间的关系,或者跟踪特定时间段内销售额和利润之间的关系。它们是基于历史数据点的统计模型,有助于根据历史数据点估计未来的模式或趋势。
在 Tableau 中添加趋势线相当简单。在本节中,你将探索可用的趋势线变体。图 5.27显示了 Tableau 中五种趋势线的类型。你将在本节稍后获得每个趋势线的详细定义以及它们最常见应用。
![图 5.28:Tableau 中的趋势线类型
![img/B16342_05_28.jpg]
图 5.28:Tableau 中的趋势线类型
在下一个练习中,你将使用散点图探索趋势线。
练习 5.05:散点图中的趋势线
你将创建散点图(如前所述),稍后将在你的图表中添加趋势线。你将使用Sample – Superstore数据集,到练习结束时,你将很好地掌握 Tableau 中可用的不同类型的趋势线。
执行以下步骤来完成此练习:
-
从
Superstore样本数据集中,将Profit拖到视图中的Columns面板。 -
将
销售额拖动到行架上。Tableau 默认将度量聚合(求和)。要更改视图的详细程度或取消聚合视图,请导航到分析|取消勾选聚合度量。 -
为了使这些趋势线更清晰,将
订单日期添加到颜色。还将颜色标记的不透明度格式化为70%,以便更容易阅读。

图 5.29:更改标记的不透明度
在下面的视图中,添加趋势线有三种不同的方法:
分析|趋势线|显示趋势线:

图 5.30:显示趋势线
标记并导航到趋势线|显示趋势线:

图 5.31:显示趋势线 – 2
-
数据面板,是时候了。导航到分析面板,并将趋势线拖动到视图中。选择您可用的任何趋势线选项。注意
根据您的 Tableau 版本,您将获得四种或五种趋势线选项。Tableau 10.5 之前的 Tableau 实例的用户将无法看到
Power趋势线。本书使用 Tableau 版本 2020.X——因此,Power趋势线是可用的。
最终输出如下:

图 5.32:Tableau 中的趋势线类型
在这个练习中,您学习了如何向视图中添加趋势线的方法。接下来,您将更详细地探索每种趋势线。
趋势线和类型
如前所述,趋势线有助于显示视图中的整体趋势。它们还可以用于预测数据中趋势的延续。此外,通过分析潜在趋势,它们有助于识别两个变量之间的相关性。
现在,您将探索 Tableau 提供的五种趋势线中的每一种,了解它们之间的区别以及何时使用它们。
线性趋势线
在估计独立变量以及因变量之间的线性关系(例如,美元与其他货币之间的汇率)时,线性趋势线是最合适的线。线性趋势线有助于估计稳定增加或减少的变量。线性趋势线的公式如下:

图 5.33:线性趋势线公式
在这里,Y 是因变量,x 是自变量,它影响因变量。m 是趋势线的斜率,c 是常数(y 截距)。
在线性模型中,假设当一个变量增加时,第二个变量的增加/减少速率将以恒定的速率增加/减少。更常见的是,变量将接近模型绘制的趋势线。以下图显示了线性趋势线的示例:

图 5.34:线性趋势线展示
多项式趋势线
多项式,正如其词义所示,意味着多个项,当你的数据有很多波动时最为适用。例如,在分析大量数据集的股票盈亏时可能会用到它。多项式趋势线的度/阶数对于确定我们数据中的波动或山峰/弯曲的数量是有用的。多项式趋势线的公式如下:

图 5.35:多项式趋势线公式
在这里,Y是因变量,x是自变量,它影响因变量;m是某点的斜率,c是常数。
以下图显示了带有多项式趋势线的散点图示例:

图 5.36:多项式趋势线展示
多项式自由度
在下面的屏幕截图中,多项式趋势线的自由度为3,这意味着在分析数据集后,Tableau 决定数据应该根据波动有三个弯曲/山峰。3的度数通常有一个或两个山峰和/或山谷。如果你想使数据更精确,对波动更敏感,可以将自由度增加到最大值 8。不妨试试看。

图 5.37:多项式自由度编辑
对数趋势线
如果变量迅速增加/减少,而速率随后平缓下来,最佳拟合线是对数趋势线。对数趋势线的一个例子是通货膨胀率,通货膨胀率可以迅速增加/减少,随着经济开始稳定,最终平缓下来。另一个例子是新手与专家的学习速率。当新手开始学习一个主题时,学习速率非常快,但随着他们掌握主题,学习速率会平缓下来。像线性趋势线一样,对数趋势线可以使用负值和正值。

图 5.38:对数趋势线公式
在这里,Y是因变量,ln(X)是对数底数,它影响因变量;m是斜率,c是常数。以下图显示了带有对数趋势线的散点图:

图 5.39:对数趋势线展示
注意
透明度降低,并过滤了一些数据,使其更易于阅读。
指数趋势线
指数趋势线是最适合的拟合线,在数据上升/下降速率陡峭时最为有用。例如,从自然界中我们可以看到病毒的传播速率是指数级的:COVID-19。指数趋势线的公式如下:

图 5.40:指数趋势线公式
在这里,Y 是因变量,X 是自变量,它影响因变量;m 是线的斜率,e 是数学常数。以下图显示了指数趋势线的执行情况:

图 5.41:具有指数趋势线的散点图
幂趋势线
幂趋势线通常是一条曲线,当数据集中包含以特定速率增加的度量时最为有用。想想每年利率的增长率,大坝每分钟的水流速率,或者火车或汽车的加速度。尽管趋势线看起来像线性趋势线,但它不是线性的,而是曲线的。幂趋势线的公式如下:

图 5.42:幂趋势线公式
在这里,Y 是因变量,X 是自变量,它影响因变量,而 m1 和 m2 是斜率。以下图显示了具有幂趋势线的散点图:

图 5.43:幂趋势线图
这总结了 Tableau 中的趋势线类型。接下来,你将探索趋势线的可靠性以及 R-squared 值和 p-value 的意义。
趋势线的可靠性
对于每条趋势线,你都有一个包含趋势线公式、R-squared 值和 p-value 的工具提示。例如,在幂趋势线中,作为因变量的 Profit 与自变量 Sales 的关系如下公式所示:

图 5.44:幂趋势线结果
阅读公式的办法是,对于 Sales 的每单位增加,Profit 将通过将 Sales 乘以 1.158 的 0.5591 次幂来计算。你现在将探索 R-squared 值和 p-value 的意义。
R-squared
作为趋势线的终端用户,理解这些预测的可靠性非常重要。当 R-squared 值最接近 1 时,趋势线被认为是最可靠的。这表明未来数据/变量落在预测线(或接近它)内的可能性极高。
P-value
p 值是一个统计函数,它量化了给定预测偶然发生的可能性。p 值越低,统计意义越显著。在功率趋势线示例中,p 值非常小(p < 0.0001),这意味着如果你再次收集报告中的数据点,你很可能看到相似的趋势。对于大多数用例,任何大于p > 0.05的 p 值都被认为是统计上不显著的,这意味着如果你重复相同的数据收集,你很可能不会得到相似的趋势,因为结果有超过 5%的可能性是由于随机性或偶然性。
这总结了关于趋势线的部分,其中你探索了 Tableau 的五个默认趋势线以及 R 平方和 p 值的重要性。在下一节中,你将通过双轴比较两个度量值。
高级图表
在之前的练习中,你已经探索了单度量以及多个度量之间的分布和关系,这使你能够相对较好地回答基本业务问题。但 Tableau 提供了高级图表类型,可以帮助回答像“关于按年销售利润的趋势是什么?”这样的复杂问题。你可以通过利用双轴图表轻松回答这个问题。
在本节中,你将探索以下图表类型:
-
象限图
-
组合图
-
Lollipop 图表
-
帕累托图
这当然不是 Tableau 中所有高级图表的详尽列表;还有其他有趣的图表类型,如饼图、Sparkline 图表、桑基图和瓦夫饼图。但上述图表是商业仪表板中最常用的一些基本图表,并且通常受到最终用户的欢迎。
象限图
象限图只是将散点图分为四个网格而不是两个部分。在之前创建的散点图中(练习 5.04,创建散点图),你比较了销售额与利润,但很难识别异常值,或者利润和销售额都高的标记,或者利润低而销售额高的标记。
象限图可以帮助。在本节中,你将创建一个象限图,如图下所示:

图 5.45:功率趋势线结果
在创建你的象限图之前,讨论参考线和可用的选项是很重要的。
参考线
参考线的作用正如其名,为我们的视图添加一个参考。你可以将参考线添加为常数或使用轴的计算值。当你添加一个计算值的参考线时,该线是动态的,并会根据该线所依赖的具体字段进行调整。
除了参考线,你还可以将置信区间添加到线上。

图 5.46:Superstore 数据集的平均销售额参考线
在前面的屏幕截图中,视图中添加的参考线代表数据集中每个季度的平均销售额。添加参考线有助于创建一个参考点,该参考点可以与整体视图进行比较。
理解参考线
为了更好地理解参考线的重要性,您现在将创建一个按年份销售的示例视图,并探索 Tableau 中可用的参考线类型:
-
整个表格参考线:这种类型参考线的范围是整个表格。
-
按面板参考线:这种类型的参考线添加到视图的每个子部分。
-
按单元格参考线:使用这种参考线类型,您可以为视图中每个单独的单元格添加参考线。
步骤如下:
-
假设您已经在 Tableau 实例中打开了
Sample – Superstore数据集,添加YEAR(Order Date),然后拖动Category(Windows 上的Ctrl + 拖动或 Mac 上的Option + 拖动)到列架上。 -
将
Sales拖到行架上,为了给视图添加颜色,将YEAR(Order Date)拖到颜色标记卡上:

图 5.47:按类别和年份的销售
-
导航到
Analytics面板,选择并拖动Reference Lines到视图中。这样做时,您会得到三个选项:Table、Pane和Cell。这些都是您必须为视图选择的参考线范围。 -
整个表格参考线:整个表格中参考线的范围。在这种情况下,您正在为整个表格添加平均销售额的参考线。

图 5.48:数据集的平均销售额
- 按面板参考线:在这种类型的参考线中,参考线添加到每个类别,并按每个类别的要求计算平均值或其他任何计算。

图 5.49:按年份的平均销售额
- 按单元格参考线:这可能是最不常用的参考线,因为在这种情况下,它只为视图中每年的按类别销售额添加参考线,正如您在以下图中可以看到的,这只是一个位于条形图顶部的参考线。

图 5.50:按类别和年份的平均销售额
- 在前面的屏幕截图中,您可能已经注意到参考线在线的开始处有
Average Sales标签。您可以在添加参考线到视图时添加,或者添加参考线到视图后编辑。右键单击Reference Lines|Edit Reference Lines。导航到Label并从下拉菜单中选择Custom。输入您的标签名称,使用<Value>(在这种情况下,Avg: <Value>):

图 5.51:使用聚合选项编辑参考线
如果您想更改参考线的范围,您可以从上一步中看到的 Edit Reference Line, Band, or Box 窗口中编辑它。您还可以根据需要更改度量的值,例如计数、求和、最小值、最大值或其他聚合。
练习 5.06:创建象限图
在这个练习中,您将分析商店数据以找到所有订单的整体利润以及利润比。视图中应有一个参考点,使任何人都能快速了解利润更高和利润比更高的订单,以及利润较低和亏损更高的订单。
满足这些要求的最佳图表是象限图,因为它允许创建带有垂直和水平参考线的散点图,这将有助于创建关于利润与利润比率的参考点。
您将使用 Sample – Superstore 数据集。到练习结束时,您应该能够理解 Tableau 中可用的不同类型的参考线。
执行以下步骤以完成练习:
-
在您的 Tableau 实例中打开
Sample – Superstore数据集。 -
创建利润与利润比的散点图。将
Profit拖动到Columns面板,将Profit Ratio拖动到Rows面板。通过导航到Analysis并取消选中Aggregate Measures来解聚度量。注意
如果您无法获得利润比,请使用
Sales代替。 -
将
YEAR(Order Date)(Ctrl + 拖动用于 Windows 和 Option + 拖动用于 Mac) 拖动到ColorMarks面板:

图 5.52:象限图的散点图
如您所见,您已将所有订单绘制在 x-y 轴上,其中 x 轴是 Profit,y 轴是 Profit Ratio。您还按年份对订单进行了着色编码。
-
要添加象限,向视图中添加参考线。由于象限包含两条在中部相交的线,您将添加两条参考线——一条用于
Average Profit,另一条用于Average Profit Ratio。 -
导航到
Analytics面板,并将Reference Lines拖动到视图中。首先,您将为Profit创建一个参考线,在这种情况下是垂直参考线。右键单击参考线以编辑Label文本和值,如 理解参考线 部分所述。您已将Average Profit: <Value>添加为垂直线的LabelMarks卡。 -
重复步骤以创建水平参考线,在这种情况下是
Profit Ratio的平均水平参考线:

图 5.53:散点图上的参考线
在前图中,您添加了两条参考线,聚合设置为平均值。水平参考线代表“订单”的“平均利润率”,垂直参考线代表“订单”的“平均利润”。
- 为了使观众更容易理解,您可以通过在视图中右键单击并添加注释文本来注释象限,如图下所示:

图 5.54:带注释的文本象限图
这部分关于象限图表的内容到此结束。您现在已经探索了与散点图结合的参考线,并已向视图中添加了注释,这是图表的绝佳上下文工具。接下来,您将探索双轴图表。
组合图表 – 双轴图表
组合图表(也称为双轴图表或组合图表)由于其灵活性和为故事讲述增加的价值而成为最受欢迎的图表类型之一。双轴图表类型本质上是将两个图表合并为一个具有共享轴的图表。例如,日期维度可以是x轴,您可以在同一图表上拥有两个不同的y轴,分别表示两个不同的度量。对于我们Superstore数据集的双轴图表示例将是利润与销售额随年份的趋势。在这里,Year将是“日期”维度(x 轴),而销售额和利润将是 y 轴。您将创建一个具有类似标记类型的双轴图表,作为本节的一部分。

图 5.55:示例双轴折线图
如前图所示,在同一视图中存在两个折线图。蓝色线条代表按“季度”计算的“利润”,橙色线条代表按“季度”计算的“销售额”。
练习 5.07:创建双轴图表
现在,您将创建一个销售与利润的视图,并将在视图中显示这两个业务关键指标的趋势。视图必须按季度进行。您将使用“Sample – Superstore”数据集来创建视图。
执行以下步骤以完成此练习:
-
在您的 Tableau 实例中打开“Sample – Superstore”数据集。
-
将
QUARTER(Order Date)拖到“列”架上,并在“列”架上的QUARTER(Order Date)上点击箭头,将维度的详细程度更改为“连续”(您也可以按 Ctrl + 拖动(Windows)或 Option + 拖动(Mac)来选择“连续”):

图 5.56:将日期转换为连续
- 将“利润”和“销售额”添加到“行”架上。创建两个如图所示的柱状图。将
QUARTER(Order Date)作为“标签”以获得更好的表示:

图 5.57:按季度显示的利润和销售额柱状图
- 在
Marks面板上,有三个部分:All、SUM(Profit)和SUM(Sales)。将单独的度量作为Marks卡片允许您分别控制这些度量。在All标记卡片(如果适用于您的 Tableau 实例)上,将Marks类型从Bar更改为Line。输出结果如下所示:

图 5.58:按季度显示的销售和利润折线图
- 最重要的一步是在
Rows面板上右键单击或单击任一度量(Profit或Sales)的下箭头,并勾选以选择Dual Axis。

图 5.59:将两个折线图转换为双轴图表
- 现在有两组独立的度量,
Profit和Sales,它们共享Order Date作为共同的 x 轴,以及两个度量值作为 y 轴:

图 5.60:双轴图表 – 异步
如果您仔细观察,两个轴有不同的 Marks,其中 Profit 轴的范围是 $0-$40,000,而 Sales 范围是 $0-$250,000。图表描绘了一个完全错误的画面,因为两个折线图有不同的轴范围,可能会导致错误的见解。
- 要修复异步轴,右键单击任一轴并选择
Synchronize Axis,这将修复问题,现在应该有两个具有相同范围的轴:

图 5.61:如何同步双轴图表
最终输出将如下所示:

图 5.62:同步双轴图表
您现在已经创建了您的第一个双轴图表。标题或轴标签可以根据您的需求进行更改。在先前的屏幕截图中,在同步轴之后,您可以看到 2016 Q4 的 Sales 在 $150-200K 的范围内,而 Profit 在 $0-50K 的范围内。如果您没有同步轴,将很难理解每个折线图的销售或利润是多少。
正如您所观察到的,双轴图表,如散点图,可以是非常强大的图表,以最简洁、最相关的方式传达信息。在 图 5.62 中,您可以查看多年来的销售与利润增长,并在分析趋势的同时进行。
这就结束了本章的主要内容。您现在将完成一些活动,以巩固您所学到的知识。
活动 5.01:创建散点图
想象你是一名电子商务分析师,你的经理要求你创建一个“销售”与“利润率”的视图。(如果“利润率”对你不可用,请使用“利润”。)他们希望看到按“段”和“年份”分解的指标。您将使用散点图来实现这一点,并使用“样本 - 超级商店”数据集来满足这些要求。
以下步骤将帮助您完成此活动:
-
在 Tableau 实例中打开“样本 - 超级商店”数据集。
-
双击或拖动“利润率”到“列”架中。
-
重复最后一步,将“销售”拖到“行”架中。
-
通过转到“分析”并取消选择聚合度量来取消聚合度量。
-
将“类别”添加到“颜色标记”卡中,将“段”添加到“形状标记”卡中。
-
接下来,将“段”添加到“过滤器”中,并在您的视图中显示它。
-
通过将“订单日期”拖到“过滤器”架中重复相同的步骤,对
YEAR(Order Date)进行操作。 -
通过单击或右键单击视图右上角的箭头,将视图中的两个过滤器都更改为“单值(列表)”。
-
双击“视图标题”以更改工作表的标题为“按段和年份的散点图”。
-
将您的颜色透明度更改为
70%以提高可读性。 -
您应该有以下过滤器。
最终输出将如下所示:
![图 5.63:活动最终输出]
![img/B16342_05_63.jpg]
图 5.63:活动最终输出
在此活动中,您加强了您对散点图和格式化选项的了解。
作为图表阅读练习,考虑图表右上角的圆形(“消费者”段)、红色(“技术”类别)标记类型。如您所见,这个特定的点(订单)有很高的销售额和 2019 年的高利润率。一个观察类别的经理会看到这样的异常值,现在可以采取措施在整个范围内复制这种成功。
注意
此活动的解决方案可在此处找到:packt.link/CTCxk。
活动五.02:具有异步轴的双轴图表
此活动从上一个活动继续。在满足初始散点图要求后,您现在被要求创建一个双轴图表,该图表显示“折扣”如何按月影响“销售”。本质上,您被要求使用具有异步双轴的双轴图表创建按月销售与折扣的视图。
以下步骤将帮助您完成此活动:
-
在您的 Tableau 实例中打开“样本 - 超级商店”数据集。
-
创建初始柱状图,显示“按月份订单日期销售(连续)”。
-
从“标记”卡中将图表类型从“线”更改为“柱”。
-
将“折扣”拖到“列”架中。
-
通过在“列”架中的任何度量上右键单击来创建双轴。
-
从“标记”架中将“折扣”的标记类型从“柱”更改为“线”。
-
不要同步您的轴,因为如果您这样做,则“折扣”轴的范围将是 0-120,000%,这在现实中是不存在的。
-
通过添加“折扣”标签来格式化图表,并编辑折扣折线图的颜色为蓝色,或您喜欢的任何颜色。
最终预期输出如下:

图 5.64:活动 5.02 的最终输出
在这个活动中,您为度量创建了具有不同标记类型的双轴图表,并探讨了为什么同步轴并不总是好主意,因为它可能导致过度外推或低估实际数字。
阅读前面双轴图表的方法是,比如对于 2016 年 4 月,平均折扣为 11%,而该月的“总销售额”为 $28,295。

图 5.65:活动 5.02 的双轴最终输出
类似地,对于 2018 年 12 月,您应该注意到平均折扣为 14%,而该月的“总销售额”为 $96,999。如果您同步双轴,平均折扣百分比可能会在千位数,如 图 5.73 所示。
注意
此活动的解决方案可以在以下链接找到:packt.link/CTCxk.
摘要
在本章中,您通过单度量直方图、箱线图和多重度量散点图探索了分布。您还详细了解了 Tableau 中可用的趋势线类型、它们的使用原因以及哪些趋势线适用于特定情况。然后,您学习了如何检查 Tableau 创建的趋势线是否可靠,并简要提到了 R 平方值和 p 值。最后,您探索了高级图表类型,其中我们与双轴图和象限图进行了交互。最后,您完成了关于具有异步轴的双轴图表的一些活动,以及带有过滤器和形状的散点图。
您现在已达到可以开始使用您创建的所有不同类型的数据问题解答的阶段。您可以开始添加可读性元素,如果视图需要您一次性回答多个问题(例如,在双轴图表上按季度查看利润与销售趋势),您还可以创建高级可视化。
在下一章中,您将离开标准数据,转向地理数据,您将更深入地了解地图和可用的格式化选项。
第六章:6. 数据探索:探索地理数据
概述
本章回顾了在 Tableau 中可用的地理功能。Tableau 提供了一套广泛的选项,用于处理基于位置的源数据,这可以帮助您使用点或多边形位置数据设计解决方案。到本章结束时,您将能够有效地在 Tableau 中使用地理数据来执行复杂的位置分析。您将更深入地了解如何导入多种数据格式,并使用您的数据创建精致、交互式的地图。这些技能将通过一系列练习和活动来培养,在活动中您将从头到尾创建自己的地理工作簿。
简介
在上一章中,您探索了数据集中的分布和关系,并学习了如何识别给定数据集中的模式。本章将专注于数据的地理方面以及位置如何影响这些分布和关系。
理解地理模式对于许多数据集至关重要,无论是全球公司的全球收入模式,还是小企业的本地购买模式。这类数据特别适用于使用地图向内部或外部客户解释模式,在地图上您可以展示从地区或国家级别到邮政编码甚至更小的地理级别,具体取决于数据的收集方式。这可以非常有助于可视化购买、投票或人口统计模式,仅举几个例子。
使用地理数据和地图最强大的方面之一是许多用户可能对位置数据具有直观的理解。这有助于使模式更加清晰,让您能够更快地得出关于客户、客户、捐赠者或其他组织利益相关者位置和互动的关键见解。
地理数据可以像基本的街道地址信息那样简单,也可以像由组织创建的基于位置的复杂层次结构那样复杂,其中基于一组自定义边界定义了多个地理级别。理想情况下,您的工作从已经地理编码的数据开始,这使得将数据读入 Tableau 而无需进一步步骤变得相当简单。在某些情况下,您可能需要做一些额外的工作,以确保您的位置数据被准确定义。了解您在数据中处理的地域粒度级别以及数据中捕获的位置信息类型非常重要:您的源数据中是否有经纬度坐标,还是您将使用 Tableau 自动执行此过程?
在本章中,您将学习如何导入地理数据并在您的 Tableau 工作表和仪表板中使用它。本章还将强调何时应该将位置数据映射以及何时最好在图表中使用它来讲述最有效的故事,以及哪种地理粒度级别(邮政编码、城市、州等)适合分析。到本章结束时,您将熟练使用地理数据作为您 Tableau 工具包的关键部分。
在本章中,您将使用 Madrid Airbnb 数据集作为您的点数据,以及一个包含纽约市边界的 shapefile 作为您的多边形数据。
导入空间数据
在您可以使用 Tableau 为地理数据集提供的众多功能之前,了解 Tableau 可以使用的地理数据类型非常重要。Tableau 可以从许多流行的格式中获取地理空间数据,包括shapefile、GeoJSON和MapInfo源。下一节将介绍一些最常用的空间格式以及如何将它们添加到您的电子表格中。
空间数据在定义地理属性方面具有独特性。虽然典型的电子表格或数据库数据可能包含地理元素(城市、州、国家、邮政编码等),但它不会包含有关这些实体的附加信息。通常,您将有一对地理坐标来处理:纬度和经度。对于像国家、州或省这样的常见实体,地图软件将识别代码并允许使用颜色渐变(填充)地图。
颜色渐变地图是包含简单纬度/经度值的数据源,这些值对应于邮政编码中心点、商店位置,甚至城市,同时还包括形状细节以及其他地理空间细节。您可以根据数据源中的多边形创建颜色渐变地图。对于更复杂或定制化的内容,您通常会依赖于某种类型的空间文件,该文件提供非常详细的边界信息。颜色渐变地图与填充地图同义——通常在显示国家、州或县级别的政治或其他偏好数据时看到。它们与基于点的地图不同,后者通常由一组单一的纬度和经度坐标定义。在某些情况下,您可以在颜色渐变地图上叠加点,向观众传达第二层信息。现在您已经对空间以及颜色渐变地图有了基本的了解,您现在可以继续学习这些地图类型的数据文件类型。
数据文件类型
本节将简要讨论几种在 Tableau 中易于使用的空间文件类型。这些数据类型代表特定的空间(地理)数据格式,可能包含特定地理级别的附加值。如前所述,这些类型与典型的数据库或电子表格数据不同,后者也可能包含诸如城市、州或邮政编码之类的地理字段。这些数据源将在下一小节中讨论;你当前的关注点是几个非常具体的空间来源。让我们简要地浏览每种类型。
ESRI Shapefiles
Shapefiles 常在用户寻找定义特定地理级别的边界文件时遇到。这类数据通常以多边形(或对应特定地理定义的区域)的形式查看,但也可能包含点或线数据。Shapefile 数据包含多个文件类型,至少必须包含 .shp、.shx 和 .dbf 文件类型扩展名。还有许多其他可选扩展名,提供了关于底层地理数据的额外信息。
Shapefiles 非常流行,特别用于显示特定地理区域的属性,如行政区划图,例如城市政府的官方分区地图,这些内容你将在本章后面进行探索。
GeoJSON 文件
GeoJSON 是一种始于 2008 年的格式,可以在点、线字符串和多边形级别包含地理细节,以及这些三种类型的组合。这种格式的文件比 shapefiles 更灵活,因为它们使用 JSON 结构来包含多个级别的细节。并非所有几何形状都可以在 GeoJSON 中表示,但现在它被推荐作为 shapefiles 在许多情况下的首选替代品。
GeoJSON 还允许表示地理移动;例如,可以通过一系列按顺序排列的地理坐标来跟踪驾驶路线或飞行路径,形成一个 LineString。其他地理类型包括 Point、Polygon、MultiPoint、MultiLineString 和 MultiPolygon。这些类型可以单独使用或组合使用,使 GeoJSON 成为一个灵活、强大的地理空间来源。
KML 文件
KML 是 Keyhole Markup Language 的缩写,它是一种 XML 类型的格式,总是包含纬度和经度属性以及命名的地理点(如伦敦、纽约市等)。这传统上一直是 Google Earth 用于在地图上绘制坐标的格式。
MapInfo 交换格式
MapInfo 交换格式(MIF)文件包含来自 MapInfo 软件程序的数据库和地图信息,MapInfo 是最古老和最受欢迎的专用 地理信息系统(GIS)平台之一。
MapInfo 表格
MapInfo 表(.tab文件扩展名)包含用于 GIS 软件的矢量数据格式。与 shapefiles 一样,有多个文件用于包含属性数据、位置数据和其他相关信息。
TopoJSON 文件
TopoJSON 是 GeoJSON 的扩展,还包括拓扑信息,可以用于根据区域内拓扑特征对地图进行着色。
从 GitHub 下载数据源
如前所述,为了完成本书的此章节或任何其他章节,强烈建议您使用官方 GitHub 仓库上传的数据源。这样做的原因是,到您阅读这本书的时候,官方数据源或该数据源的链接可能已经更改。此外,大多数时候,作为本书 GitHub 仓库一部分的数据源已经被清理,以帮助理解概念。因此,在可能的情况下,请利用官方 GitHub 链接的数据,而不是从官方数据源下载数据。
第六章:数据探索:地理数据探索 GitHub 数据源文件夹可以在以下 URL 找到:packt.link/6fzj9。
- 纽约市分区数据:ESRI 代表环境系统研究学院,自 1969 年以来一直支持基于地理的信息管理系统的设计、开发和实施。在我们的数据文件夹“纽约市分区”文件夹中,包含 ESRI 格式的空间文件,这是.shp、.shx、.dbf 和.prj 文件格式的组合。要连接到这些空间文件,所有上述文件以及.zip 文件都应该包含在同一个文件夹中。
纽约市数据源链接:data.cityofnewyork.us/City-Government/Zoning-GIS-Data-Shapefile/kdig-pewd。
- 马德里 Airbnb 数据源:InsideAirBnB.com 由 Murray Cox 为其 Airbnb 项目创建,数据集包含多个文件,包括列表详情、评论以及社区详情。
InsideAirBnB 数据源链接:insideairbnb.com/get-the-data.html。
- SF 买出数据:此文件来自旧金山市的公共数据仓库,其中包含 2015 年以来旧金山市所有买出协议的 shapefile (.shp)文件。您将在活动部分使用此数据源。
SFGov.org 数据源链接:data.sfgov.org/Housing-and-Buildings/Buyout-Agreements/wmam-7g8d/data。
练习 6.01:下载源数据
在这个练习中,您将下载并导入一个可用于填充(渐变)地图的地理数据源。
执行以下步骤以完成此练习:
- 打开浏览器并导航到
Chapter06GitHub 仓库:packt.link/6fzj9。

图 6.1:纽约市分区 shapefile
- 点击
NYC Zoning Data文件夹并下载 ZIP 文件。将 ZIP 文件解压到您选择的位置:

图 6.2:纽约市数据下载格式
-
定位并提取您刚刚下载的 shapefile。
-
打开一个新的 Tableau 工作簿。
-
通过选择
数据|新建数据源添加一个新的数据源:

图 6.3:添加新数据
- 从“连接”菜单中选择
空间文件:

图 6.4:选择空间文件选项
- 打开下载的文件并将
.shp文件导入到 Tableau。当您从NYC Zoning Data文件夹添加 .shp(空间)文件时,Tableau 会处理该文件夹中的所有文件,包括其余四种文件格式,并创建数据的多边形地图。当所有文件合并成一个 shapefile 并加载到 Tableau 中时,Tableau 会处理 ESRI 文件:

图 6.5:导入数据源
-
点击
Sheet 1创建您的第一个工作表。 -
找到
几何度量并将其拖到详细卡片:

图 6.6:将几何度量添加到详细卡片
Tableau 将自动使用 shapefile 信息创建地图,如下所示:

图 6.7:默认的 Tableau 地图输出
上述截图显示了纽约市的 shapefile 版本,并完成了将空间数据文件加载到 Tableau 中的目标。
在这个练习中,您从 www1.nyc.gov/ 下载了数据源,并导入了一个 shapefile 来显示纽约市的分区区域。现在您可以查看文件中每个多边形形状的相关信息。在下一节中,您将学习如何导入非空间地理数据源并将它们在章节的后续部分进行联合分析。
导入非空间地理数据源
许多地理数据源并非专门的空间数据源,而是作为更大数据集的一部分以电子表格或数据库格式存在。这些数据集通常包含非地理数据,例如客户信息、时间段细节和各类指标。国家、州和城市等地理特征也常常包含在内,这使得创建显示许多数据属性的地图成为可能。
Tableau 使从这些源创建地图变得容易,尽管您可能需要在此过程中提供帮助,正如您很快将看到的。由于许多 Tableau 数据源不会位于空间格式中,确保您可以使用通用数据源以适当的详细程度显示地理信息至关重要。
导入这些源与导入任何一般类型的 Tableau 数据的过程没有不同。这里唯一的区别是您需要一个或多个地理字段来帮助您将数据放入地图格式。在下一节中,您将进行一个快速练习,您将导入一个非空间源。
您的第一个数据源将是一个详细的 Airbnb 在马德里的房源列表。此文件将包含关于房东、房源位置、评分、评论和其他房源详细信息。
练习 6.02:导入非空间数据源
在本练习中,您将导入已下载的详细列表文本文件。在本练习结束时,您将拥有一个 Tableau 数据源,其中包含多个属性,可用于在 Tableau 工作表中映射属性。如果您尚未下载 listings_detailed.csv 文件,您可以在以下位置找到它:packt.link/Hh7ZL。
实现这一目标的步骤如下:
- 从顶部菜单选择
数据|新建数据源:
![图 6.8:创建新的数据源]
![图片 B16342_06_08.jpg]
![图 6.8:创建新的数据源]
- 选择
文本文件选项:
![图 6.9:选择文本文件选项]
![图片 B16342_06_09.jpg]
![图 6.9:选择文本文件选项]
- 定位您的下载文件。它可能是一个
.zip文件,因此请在一个文件夹中提取文件,并且该文件夹应包含多个文件。要导入文件(listings_detailed.csv),定位listings_detailed.csv并点击打开按钮:
![图 6.10:添加文本文件数据源]
![图片 B16342_06_10.jpg]
![图 6.10:添加文本文件数据源]
- 为了提高数据性能的效率,创建数据的提取而不是实时数据,这样当您开发可视化时,您的数据操作将会快速。在数据面板右上方的
连接下选择提取单选按钮,然后点击立即更新。这将使您的窗口填充数据的一个子集:
![图 6.11:选择提取选项]
![图片 B16342_06_11.jpg]
![图 6.11:选择提取选项]
- 重命名数据源
bnb listings并在提示时保存您的提取:
![图 6.12:重命名数据源]
![图片 B16342_06_12.jpg]
![图 6.12:重命名数据源]
- 选择一个工作表并运行提取。现在您将看到所有数据维度和度量,以及一个空白的工作区:
![图 6.13:创建提取后查看工作区]
![图片 B16342_06_13.jpg]
![图 6.13:创建提取后查看工作区]
在上一个练习中,你导入了空间数据,在这个练习中,你导入了包含几个地理字段的非空间数据源,这将帮助你使用成千上万的 Airbnb 属性的位置创建信息丰富的地图。接下来是空间数据和非空间数据之间的关系。
数据关系
你可以使用的一个 Tableau 功能是连接(joins),它允许你在数据源级别创建关系。Tableau 始终允许在分别添加的多个数据源之间进行连接,但这通常仅对较小的数据集有用,其中简单的连接就足够了。在数据源级别使用数据关系采取了一种更稳健的方法,允许使用多种类型的连接以及源数据集的并集。这种方法还导致性能大幅提升,尤其是在创建数据提取时。
在数据源级别创建连接允许连接来自多个源(文本、Excel、数据库等)的数据,使得使用连接中的单个键字段合并数据变得简单。这在组织内部的不同部分(即营销与财务)使用不同的信息系统时,或者当你需要一个简单的查找表来提供源数据库信息中未包含的直观定义时,特别有用。
练习 6.03:连接两个数据源
在接下来的练习中,你将连接两个数据源以创建分析的新可能性。第一个(主要)源是listings_detailed.csv文件,你的次要文件是一个简单的邻里文件,它将提供邻里名称,并且是你在上一个练习中下载的数据源的一部分。请记住,这个练习只是为了说明目的。如果你的次要文件有额外的字段,你可以用数据连接做更多的事情。这个主题将在随后的章节中介绍。
创建你的数据连接包括几个简单的步骤:
- 如果已经创建,请添加新的数据源或编辑现有源以使用
listings_detailed.csv文件:
![图 6.14:将列表文件添加到数据窗口]
![图片 B16342_06_14.jpg]
![图 6.14:将列表文件添加到数据窗口]
-
通过从
连接选项卡拖动,将主数据源添加到窗口中(如果它还没有在那里)。 -
从
连接选项卡将次要源(邻里文件)拖动到数据源窗口中。 -
使用每个数据源下拉菜单中的
Neighbourhood字段在两个数据源之间创建连接。然后,选择内部连接选项。你的窗口应该看起来像这样:
![图 6.15:在两个数据源之间创建表连接]
![图片 B16342_06_15.jpg]
![图 6.15:在两个数据源之间创建表连接]
- 通过选择
立即更新按钮来更新提取。
你的最终输出应该是以下内容:

图 6.16:在两个数据源之间创建表连接
您现在将可以从次要源中获得新的字段。如前所述,这是一个非常简单的例子,但您也可以使用次要源作为参考表,提供有关社区的其他信息,例如酒吧、餐厅或旅游景点的数量。有许多其他可能性;所需的一切只是一个公共字段来创建连接。在下一节中,您将了解如何编辑位置及其别名,以及创建自定义地理。
管理位置数据
制作地图和其他有意义的地理分析的关键是拥有必要的地理位置元素(国家、州、城市等),并确保它们在 Tableau 中被正确分类。在许多情况下,Tableau 将正确识别这些角色,使您的工作变得简单。在其他情况下,您需要告诉 Tableau 正确的角色。这通常发生在您的源字段名称与 Tableau 使用的标准命名约定不对应时。也可能存在 Tableau 根据维度字段名称错误地假设非地理字段表示位置数据的情况,或者无法自动识别值。
本节将探讨在 Tableau 中使用三种主要方法创建和维护地理数据的方式——分配角色、编辑位置和构建自定义地理级别。
分配地理角色
Tableau 在根据源数据命名约定解释地理级别方面非常擅长。例如,如果您有一个名为 city 的源字段,那么 Tableau 将假设您想使用此字段在地图上标识城市。这并不总是这种情况——名为 city neighborhood 的字段可能标识不同的地理级别。在这些情况下,Tableau 将需要您的指导来将源字段匹配到正确的地理级别。熟悉您的数据源将使这项任务变得简单。
查看以下导入的列表数据,以了解 Tableau 如何处理数据,以及您是否需要做出任何修改。您可以通过寻找地球图标轻松找到 Tableau 确定的地理字段。在此数据集中,您可以看到城市、国家、国家代码、州和 ZIP 码维度——每个都有地球图标。请检查每个字段是否具有正确的地理角色,从 city 开始:

图 6.17:将地理角色关联到数据源字段
城市 维度已正确关联到城市地理级别。根据命名约定,这是预期的;如果维度被命名为 host city 或其他变体,可能需要手动链接。然后你可以通过相同的流程,并注意每个维度都已正确识别其地理角色。此外,请注意,国家和国家代码都与 国家/地区 角色相关联;任一字段都可以用来在地图上识别国家级别。
在地理关联尚未建立或关联错误的情况下,你需要通知 Tableau 正确的分类。这通常发生在字段名称不明确的情况下——例如,如果你的源数据中将 country 命名为 CTRY,那么你很可能需要告诉 Tableau 这个字段实际上指的是一个或多个国家。为了进行这项修正,你只需为这个维度选择 地理角色 | 国家/地区 选项,并分配正确的值。
注意
图 6.18 显示了下方有 13 个未知值。请注意,然而,随着数据的不断更新,你可能会得到不同的未知值。
编辑位置
有时会遇到 Tableau 无法识别地理数据的情况,这通常是由于源数据中的拼写错误造成的。当你尝试将数据映射到地图上时,这会导致出现空值,使用户无法获得完整的信息视图。幸运的是,你可以提供更多关于这些值的信息,以帮助它们正确映射。看看当你尝试映射州维度时会发生什么:

图 6.18:映射州维度
注意到在前一个屏幕截图的右下角,有一条消息告诉你你有 13 个未知值。Tableau 没有识别出你数据集中提供的州。要找出发生了什么,点击 13 个未知 按钮,这将打开一个 特殊值 窗口:

图 6.19:编辑位置以更新未知值
然后你选择 编辑位置... 选项来打开一个窗口,你可以在其中开始匹配过程。当这个窗口打开时,你很快就会看到问题:你的默认 国家/地区 是根据你的位置设置的(在这个例子中是 美国),而不是 西班牙。

图 6.20:识别未识别的地理值
这可以通过在下拉列表中找到 西班牙 并将其设置为默认值来轻松解决。当你应用这个更改时,你会看到许多条目已经自动更新,特别是任何包含马德里在内的名称的条目

图 6.21:使用“编辑位置”窗口更新未识别的值
有些其他条目尚未自动更新,这可能是由于数据不干净造成的。你现在可以调查这些条目以确定问题的范围。由于你知道你的数据集完全由马德里地区的房产组成,因此更新剩余条目到相同的Comunidad de Madrid条目可能是安全的。在编辑位置窗口中,对于每个未识别状态,只需双击未识别,然后从下拉列表中选择Comunidad de Madrid条目以进行手动更新。
构建自定义地理
在许多情况下,你可能想要创建在数据源中尚未定义的自定义地理级别。在 Tableau 中,通过指定如何创建新级别以及使用现有的地理属性,可以非常容易地做到这一点。你还可以使用计算字段创建自定义地理。让我们分别看看每种方法的单个示例。
使用现有角色创建新地理
在某些情况下,你将基于源数据中已经存在的级别创建新的地理级别。这可能与销售区域、邻里或其他没有正式定义地理级别的聚合有关。让我们通过使用马德里数据集的 ZIP 代码和邻里作为例子来看一下。
你已经在数据源文件中有了 ZIP 代码(邮政编码)数据,同时也有邻里数据,尽管只是以文本形式。你的目标是创建可以在地图上显示的地理邻里定义。为此,右键单击邻里维度,选择地理角色 | 从...创建 | zipcode。这告诉 Tableau 使用现有的 ZIP 代码数据在邻里级别构建地理。以下是菜单选择的一个视图:

图 6.22:创建地理角色
你可以从数据面板中看到,Tableau 通过创建一个层次结构来完成这项工作,其中邻里是顶级,zipcode是次级:

图 6.23:构建自定义地理级别
这在地图上会是什么样子?要显示你的新级别,将邻里字段从层次结构拖到详细标记,将邻里拖到标签标记卡,并将SUM(记录数)添加到颜色标记,然后从显示我菜单中选择地图选项,得到以下显示:

图 6.24:映射新创建的邻里多边形
从地图上可以看出,你再次遇到了一个未知问题,有 66 个值你无法将其与邻里关联起来。这很可能是由于源数据中的某些问题——可能是 Neighbourhood 维度中的缺失值或脏 ZIP 码数据。当数据录入没有严格的规范时,这类问题经常发生;Tableau 设计师需要确定问题的重要性,并相应地采取行动。
使用组创建新的地理
创建新的地理级别的第二种方法是创建一个计算字段,再次使用现有的地理级别作为基础。你可以再次使用基于 ZIP 码的计算(可能是前三位或四位数字),得到类似于邻里示例的聚合级别。这假设 ZIP 码是以这种方式分配的,这种方法是有意义的。
另一种可能性是创建一个组,在这个组中,你可以为你的每个聚合簇分配一个名称,然后相应地进行映射。以下示例中,使用 Group 函数创建了一组基于邻里名称的聚类:
![图 6.25:基于邻里名称创建组]
![img/B16342_06_25.jpg]
图 6.25:基于邻里名称创建组
要创建组,请按照以下简单步骤操作:
-
突出显示一个或多个单个邻里值。
-
点击
Group按钮。 -
通过编辑默认的 Tableau 组名称来命名组。
-
对每个额外的组重复 步骤 1 到 步骤 3。
-
点击
OK按钮保存所有组。
现在,你可以通过将 Neighbourhood Clusters 维度拖到 Detail 标记来将这些聚类添加到地图上;你可以继续使用 SUM(Number of Records) 度量来用于着色。以下是结果:
![图 6.26:映射邻里聚类]
![img/B16342_06_26.jpg]
图 6.26:映射邻里聚类
注意,有 12 个未知条目;可以通过点击消息并使用 Edit Locations 屏幕来更新条目,如前所述来解决这些问题。
以这种方式对地理区域进行分组可以帮助将你的数据聚合到有意义的分析水平,特别是如果你熟悉源数据中的地理属性。在下一个练习中,你将使用你一直在使用的 Airbnb 数据集来练习这些概念。
练习 6.04:构建自定义地理
在这个练习中,你将使用现有的角色和组方法来创建自定义地理。这将提供使用这些聚合维度进行映射的额外选项,从角色方法开始。
执行以下步骤以完成此练习:
-
打开一个新的或现有的 Tableau 工作簿。
-
如果你还没有这样做,请导入
listings和neighbourhood文件。 -
确保你有包含
listings_detailed和neighbourhoods文件的listings_detailed数据源。如果没有,通过在Neighbourhood字段上连接它们来创建这种关系。

图 6.27:将两个文件作为一个单一数据源连接
-
通过选择
提取单选按钮创建一个提取。保存提取并打开工作表。 -
通过选择维度并基于
zipcode创建角色来为邻里创建一个地理角色。

图 6.28:分配自定义地理角色
- 右键点击
邻里维度并选择创建|分组...菜单项:

图 6.29:从现有字段创建一个组
- 从
Acacias到Atocha选择条目并点击分组按钮。将此命名为集群 1。然后,通过Gaztambide选择更多条目并点击分组按钮。勾选包含'其他'复选框:

图 6.30:从邻里维度创建分组后的结果
- 点击
确定按钮。你现在将看到一个[邻里集群]组维度。

图 6.31:邻里集群组作为一个新维度
在这个练习中,您使用两种方法创建了两新的地理字段。现在您可以使用这些维度来创建填充地图,您将在下一节中探讨,使用Show Me菜单中显示的几个选项。
在 Tableau 中创建地图
Tableau 在Show Me菜单中提供两种不同的地图选项——一个用于符号地图,另一个用于渐变地图。如果您的数据有简单的经纬度值对应于邮政编码中心点,例如商店位置(甚至是一个城市),那么您的映射将集中在符号地图选项上。然而,如果您的数据基于 shapefile 或 GeoJSON 数据源具有更详细的数据,那么您可以使用渐变选项来创建基于数据源中多边形的填充地图。在某些情况下,您将能够访问这两种类型的数据源,并能够创建一个双轴地图,这将在本节的后面部分进行探讨。以下是对这两种类型的简单比较,渐变(填充)地图在左侧,符号地图在右侧:

图 6.32:一种渐变(填充)地图和一种符号地图
地理编码
地理编码是将地理属性分配给可能不会自动识别为传统地理空间字段的字段的过程。在这些情况下,您需要分配与这些维度相对应的值,以便创建地图。本节将探讨如何在 Tableau 中处理这种情况。
在许多情况下,你将遇到 Tableau 在没有一些指导的情况下无法识别的地理属性。街道地址是这种情况的常见例子;与国家、州或甚至城市不同,街道地址在多个地理区域内经常重复,这使得它们在地图上正确定位变得非常困难。幸运的是,Tableau 允许自定义地理编码,你可以使用两种不同的方法来提供更精确的信息。在两种情况下,你都是从 .csv 文件开始的。
第一种情况是,你希望使用现有的地理定义,并简单地扩展它们以包括新成员。例如,如果你需要向你的地图中添加一个 Tableau 无法识别的新国家、州或县,你可以使用 .csv 文件提供此信息。你只需选择 地图 | 地理编码 | 导入自定义地理编码 菜单选项,并将 Tableau 指向你的目录,其中已创建 .csv 文件。数据字段名称必须与现有的 Tableau 字段名称(如 国家、州 等)匹配,并且应包括纬度和经度信息,以便 Tableau 知道在地图上定位新条目。
第二种自定义地理编码类型涉及可能特定于组织(如区域销售层次结构)的信息,或者可能引用非传统点数据,如闪电或火山爆发。在这些情况下,你为新项目创建特定的名称,然后添加一个可以在 Tableau 中使用的新的字段名称。例如,如果尝试绘制这些事件,字段名称可能被称为 闪电打击。同样,必须包括纬度和经度数据,以及其他适当的地理级别,如 国家 和 州。
添加此自定义地理编码信息扩展了 Tableau 的地图功能,超越了传统的边界和定义。
注意
创建图 6.33 所示地图的步骤在练习 6.05 中解释。
符号地图
符号地图表示所有以基于点的纬度和经度格式提供位置数据的地图。纬度表示数据点的南北位置,而经度提供东西位置。在 Tableau 中使用这两个度量标准可以帮助你精确地定位商店、办公室、公园、博物馆和其他具有特定位置的实体。这些点可能代表大型地理实体(如公园)内的中心位置,或者可能具有更高的精度水平,具体取决于你的源数据有多详细。例如,纬度值 45.37187 将比四舍五入到 45.37 的相同值更精确。
符号图非常简单,但在基于地理位置数据讲故事的能力上却非常强大。让我们在 Tableau 中探索构建有效符号图的过程。一切从纬度和经度度量开始,这些度量可能包含在您的源数据中,或者可以由 Tableau 为已识别的属性(如国家、州和县)进行计算。例如,使用您的马德里位置数据,这里是基于源文件中纬度和经度数据的一个简单视图。您可以选择任何点来查看支持的地理坐标:

图 6.33:符号图中数据点的详细信息
地图中的每个点都是基于纬度和经度定位的,如地图的提示所示。您可以使用额外的地图层提供更多上下文,但就目前而言,这是一个良好的起点。
向符号图添加数据
虽然在地图上放置位置点可以提供信息,但更常见的情况是您还希望向这些点添加数据度量——例如,商店位置的收益或旅游景点游客数量的两个简单例子。在 Tableau 中,使用颜色、大小或形状来识别地理点的特征,这可以轻松完成。首先,您需要确定哪些数据字段将最有意义地显示;这将允许您根据用户交互构建显示特定信息的逻辑。
当您向符号图添加度量时,有两种常用的方法来显示这些数据;第一种是使用颜色或形状,第二种是使用符号的大小。如果您正在向显示添加维度信息,您通常会选择颜色或形状来表示这些类别。在某些情况下,形状和颜色都可以用来向地图查看者提供更多细节。如果您正在向符号显示添加度量,大小通常将是首选的方法,因为它有助于识别不同地点之间的数值差异。使用颜色或形状与度量结合并不那么有效,尽管两者可以与大小一起使用。在接下来的部分中,您将看到每个选项的示例。
为符号图着色
颜色可以用来深入了解分类维度和数值度量。这将使用户获得一个良好的视觉提示,帮助他们看到信息中的地理相关模式。在使用颜色时,重要的是要记住,人类视觉系统在观察颜色方面有一个有限的范围;你通常希望将其保持在 10 种不同的颜色或色调以下。位于colorbrewer2.org的 Color Brewer 网站提供了从 3 到 12 种不同色调的调色板,用于地图绘制。一些用户可能能够区分更多的不同颜色,但最好还是保守一些,尽量减少地图颜色的数量。你也可以根据你的数据分布来决定颜色,可能会发现你需要 3 种或多达 9 种或 10 种颜色来正确地讲述故事。
在这里,你可以看到一个使用邻域组着色的例子,其中你有九种颜色:

图 6.34:使用邻域组维度着色符号地图
注意,当你使用不同的颜色时,每个邻域组是如何容易地被看到的。在这种情况下,使用具有明显不同颜色的调色板非常有帮助,而使用单一颜色和渐变阴影则更难以解释。当你有如政治区域或邮政编码这样的不同类别时,可以应用相同的方法。另一方面,如果你想要看到为政治党派或候选人投票的选民百分比,最佳方法是使用单一颜色的阴影来反映从最小到最大水平的百分比(例如,可能是 10%到 70%)。
要给地图上色,请执行以下步骤:
-
将着色字段(在这种情况下为
邻域组)拖动到颜色卡片上。 -
如果需要,选择
颜色卡片来编辑颜色。 -
选择一个最佳显示的透明度级别;建议使用小于 100%的透明度,尤其是在地图上有重叠符号时。这将提高数据可见性。
调整符号地图的大小
单个点也可以根据数据中的值来调整大小,通常基于单一度量。例如,你可能选择根据每个门店位置的销售额来显示点的大小。收入较高的门店将有一个较大的点(或其他符号),与其相对较低值的地点的收入相对应。这种方法是有效的,因为大小差异是更容易检测到的视觉线索之一。
在马德里示例中,点的大小是根据每个住宿的卧室数量来确定的。你可以保留已经创建的颜色,这样你的地图对观众来说将变得更加信息丰富。
要这样做,请遵循以下步骤:
-
将
卧室维度拖动到工作表中的标记区域的大小卡片上。 -
点击
大小卡片,并使用滑块工具调整符号大小。
缩放以更清楚地看到效果:
![图 6.35:使用卧室维度来调整地图符号的大小
![img/B16342_06_35.jpg]
图 6.35:使用卧室维度来调整地图符号的大小
你现在有从0到8个卧室的点,在这个缩放级别上差异相当明显。区分6和7或3和4可能需要一点工作;这就是提示信息可以提供更多清晰度的地方。你可以通过选择Size卡片并拖动条到左边或右边来轻松调整标记的大小。
在符号地图中使用形状
让我们继续使用马德里数据来探索。你已经使用了颜色和大小来使你的地图更具信息量;现在你可以添加形状,为地图提供更多一层细节。在这个阶段,你可能希望小心不要在显示中添加太多形状,因此一个简单的类别就足够了。使用Instant Bookable字段,因为它只包含两个值。
要创建此地图,请按照以下步骤操作:
-
简单地将
Instant Bookable维度拖到Shape卡片上。 -
通过点击
Shape卡片并为每个数据类别分配一个形状值来选择你希望显示的形状。
这是结果:
![图 6.36:使用形状来展示即时可预订的价值
![img/B16342_06_36.jpg]
图 6.36:使用形状来展示即时可预订的价值
现在,你有一个为用户提供丰富信息的地图,包括社区群体、卧室数量以及物业是否可以即时预订。为了提供更多见解,你可以自定义提示信息,以便用户在悬停于某个点时了解更多关于该物业的信息。
添加地图提示信息
提供信息提示是一个很好的收尾,有助于用户导航地图及其包含的底层信息。虽然地图标签可能很有帮助,但它们最终会变成视觉噪音,掩盖地图中包含的有意义信息。这就是提示信息变得特别有用的地方,因为它们可以包含大量信息,而不会妨碍地图显示。
让我们快速浏览一个在地图中构建简单但信息丰富的提示示例。你已经看到了提示的最简单版本,但它们的功能远不止于此,正如你即将看到的。
要向工具提示添加更多字段,只需将维度或度量拖到“标记”面板中的“工具提示”卡片上。这将使这些字段即使在你的文本中没有被使用时也能被访问。默认情况下,Tableau 将提供一个包含与地图相关的信息的功能工具提示,如图 6.37 所示。只需一点努力和对比字体颜色的使用,工具提示就可以变得更有力。你可以将“主机名”、“主机响应率”、“邮编”和“摘要”维度拖到“工具提示”卡片上,并继续使用现有的“邻里组”和“卧室”维度来讲述关于该物业的小故事,如图图 6.38所示。

图 6.37:自定义工具提示以讲述详细的故事
如你所见,工具提示是一个很好的方式来包含有用的信息,而无需在地图上添加太多细节。
导航符号地图
Tableau 提供了一些简单的工具来导航地图。在“地图”窗口的左上角有一个小工具栏,具有以下功能:
-
搜索功能可以定位地图中的元素。
-
放大对于导航人口密集的地图非常有用。
-
缩小可以用来显示整个地图并提供周围的环境。
-
重置地图将地图设置为固定的显示大小。
-
区域放大是放大的一种扩展,允许你选择地图的特定部分进行放大。
-
平移功能允许你上下或左右移动地图。
-
三个选择工具(矩形、半径和套索)允许在选定的地图部分中突出显示元素。
这些工具使得在地图窗口内移动地图、放大或缩小数据点、固定显示大小(使用重置地图)以及使用三个选择工具创建自定义选择变得容易。地图数据也可以通过使用地图图例进行过滤,正如你将在下一节中看到的。
过滤符号地图
在前面的部分,你学习了如何区分带有三四个卧室的地方的挑战,因为符号的大小几乎相同。这对可能需要四个卧室但无法通过符号大小轻松区分的用户来说是一个问题。为了解决这个问题,用户可以简单地点击“卧室”图例中的4,并选择“仅保留”选项。Tableau 将自动在“过滤器”面板中添加一个过滤器,反映这个选择。
同样,你可以使用为“邻里组”提供的“颜色”图例来做这件事。使用颜色,你可以点击一个或多个选项,数据将被突出显示。在这种情况下,已经选择了Centro和Chamberi两个邻里组,得到以下结果:

图 6.38:通过选择图例值过滤地图
您也可以选择“仅保留”选项,Tableau 将添加一个反映您选择的过滤器。
形状过滤器的工作方式与大小过滤器类似,允许用户选择“仅保留”选项来设置过滤器。或者,如果用户希望从地图中删除某些位置,可以选择“排除”选项。
虽然这些选项非常有用,但用户可以更进一步,使用地图数据构建新的组和集合。我们将在下一节中访问这些选项。
从符号图数据创建组和集合
Tableau 地图中的一个有用功能是能够根据地图上点的选择创建组和集合。这很重要,因为您可能不会总是意识到模式,直到在地图上看到它们。然后,您可以使用矩形、环形或套索选择来选择一组数据点,并立即创建一个组或集合。这是一个强大的功能,允许用户利用地图上揭示的模式来创建有意义的聚合数据。
考虑以下使用您之前创建的符号图的示例。使用地图工具栏,选择矩形选择工具,并用它突出显示点的一个区域。(注意您选择区域中所有点的不同颜色。)

图 6.39:选中的点以不同的颜色显示
然后您通过使用“组成员”图标为选定的点创建一个组:

图 6.40:使用“组成员”图标创建组维度
Tableau 现在在“维度”面板中创建了一个组,可以在分析中使用。这是一种比手动使用组功能创建组更直观、更快捷的方法。
执行以下步骤来完成此操作:
- 从地图工具栏中选择矩形选择工具。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_06_41.jpg)
图 6.41:选择矩形选择工具
-
在地图中突出显示您希望选择的区域。
-
将鼠标悬停在所选的任何数据符号上。
-
选择之前显示的“组成员”图标。
-
您可以检查您的结果以验证组已创建:

图 6.42:查看新创建的组中的值
这个例子说明了另一种您可以使用地理数据和地图来扩展分析能力的方法。您现在将围绕符号图练习这些概念,包括对位置进行分组并按其组进行着色。
练习 6.05:构建符号图
在这个练习中,您将使用马德里列表数据创建一个符号图。这将有助于了解整个城市的列表模式。
执行以下步骤来完成此练习:
-
如果你还没有这样做,请导入
Madrid listings数据集。 -
通过像前几节/练习中所示的方式将多个文件连接起来创建数据源。
-
添加一个新的 Tableau 工作表。
-
将
经度度量拖到行架上,将纬度度量拖到列架上。(使用这些度量而不是 Tableau 提供的生成值。)将经度和纬度都改为维度:
![图 6.43:将纬度值设置为维度
![图片 B16342_06_43.jpg]
图 6.43:将纬度值设置为维度
- 将
城市维度拖到详细卡上,将SUM(记录数)度量拖到大小卡上,并调整符号大小以更好地显示所有点。如果由于某种原因你没有得到地图,请点击“显示我”卡,并手动选择“符号地图”。
![图 6.44:调整大小卡以在地图上显示符号
![图片 B16342_06_44.jpg]
图 6.44:调整大小卡以在地图上显示符号
- 将
SUM(记录数)替换为Size卡上的Accommodates度量:
![图 6.45:使用“容纳”维度来调整地图上的点的大小
![图片 B16342_06_45.jpg]
图 6.45:使用“容纳”维度来调整地图上的点的大小
- 将
邻域组维度拖到颜色卡上,并将此工作表命名为Madrid Accommodates Map。你将在本章后面的练习 6.07:创建双轴地图中使用相同的工作表:
![图 6.46:使用邻域组维度着色地图
![图片 B16342_06_46.jpg]
图 6.46:使用邻域组维度着色地图
现在很容易识别 Centro 邻域(在截图下半部分显示为橙色簇)的列表密度。由于它们距离 Centro 的主要旅游景点较远,周围的每个邻域在地图上都有较少的列表分散。
在这个练习中,你创建了一个符号地图,详细展示了马德里市内的列表模式。这张地图可以作为使用多个度量、参数和筛选器进行额外洞察的基础。在接下来的部分中,你将回顾 Tableau 支持的地图的第二种类型,即颜色渐变地图,这是你在本章开头简要了解的。
颜色渐变(填充)地图
颜色渐变地图与符号地图在一点上有所不同:现在位置基于形状(多边形、线条或点)而不是基于经纬度坐标的单一点。这些地图通常使用官方定义的地理名称(国家、州、城市)作为分析的基础,颜色是显示度量的主要方法,因为大小和形状已经定义。填充地图也可以与符号地图一起使用,以提供多层次的地理分析。
注意
对于下面主题中提到的平均面积度量创建,如果你使用的是 Tableau 2020.1 之后的任何版本,则字段记录数不存在。为了创建平均面积度量,你可以明确地自己创建记录数。请参阅此链接获取更多信息:tarsolutions.co.uk/blog/number-of-records-missing-in-tableau/。
为 choropleth 地图着色
如前所述,颜色通常用于在填充地图中显示度量差异。在比较维度(分类)值时使用不同的颜色集,而阴影调色板是显示度量的最佳方法。
让我们来看这两个案例,首先是一个维度示例,然后是一个度量示例。这两个示例都将使用之前下载的纽约市分区数据。对于维度示例,不需要新的字段;你只需将几何度量拖到详细卡片上,让 Tableau 使用 shapefile 多边形数据,然后将zonedist维度拖到颜色卡片上。结果看起来像这样:
![Figure 6.47: New York City zoning map colored by detailed zonedist values
![img/B16342_06_47.jpg]
图 6.47:根据详细分区距离值着色的纽约市分区地图
注意,你有许多详细的分区类型。这些可能需要聚合以呈现类似地图,而不需要不必要的细节。为此,你将创建一个简单的从zonedist值中分组的字段,其中非常高级的组包括以C开头的商业区域,M是制造区域,R是住宅区域;其他的是不言而喻的。让我们重新查看地图并将zonedist (group)维度拖到颜色卡片上。这是你的新地图:
![Figure 6.48: New York City zoning map colored by grouped zonedist values
![img/B16342_06_48.jpg]
![Figure 6.48: New York City zoning map colored by grouped zonedist values
现在,你可以看到住宅、商业和制造区域之间更明显的模式,这些模式之前被每个指定内的许多子类型所掩盖。
你可以使用相同的数据创建基于度量的填充地图,尽管你需要做一些工作来创建一些新的度量。某些数据集可能包含有用的度量(如收入、人口密度等),但这里不是这种情况。你将创建两个可以在地图上使用的度量(平均面积和区域计数),使用以下公式。
可以使用以下步骤创建平均面积度量:
-
在
数据面板中右键单击并选择创建计算字段。 -
输入
SUM([Shape Area])/SUM([Number of Records])公式。 -
将计算命名为
平均面积并点击确定按钮关闭窗口。
可以以类似的方式创建区域计数:
-
在
数据面板中右键单击并选择创建计算字段。 -
输入
COUNT([Zonedist])公式。 -
将计算命名为“区域计数”并点击“确定”按钮关闭窗口。
您现在可以使用这两个度量之一作为颜色创建填充地图。将zonedist拖到“详细”卡上,将Zone Counts拖到“颜色”卡上以更新地图,如下所示:

图 6.49:按区域计数着色的纽约市分区地图
您现在看到每个区域都按出现频率着色(注意最高计数用最深的颜色表示)。当您在地图上显示连续度量时,这种类型的颜色方案很有用,而不是您在维度地图上使用的不同颜色。当数字低于零或平均值时,双色方案很有用,可以显示低值与高值(例如,红色到蓝色)。Tableau 有许多原生的颜色调色板可供选择,这使得创建引人入胜的地图变得容易。
在等值线地图中导航
在导航地图时,您可以使用在符号图部分讨论的相同地图工具:
-
搜索创建在地图中定位元素的能力。
-
使用缩入对于在人口密集的地图中导航非常有用。
-
使用缩出可以显示整个地图并提供周围环境。
-
重置地图将地图设置为固定的显示大小。
-
缩放区域是缩放的一种扩展,允许您选择地图的特定部分进行缩放。
-
平移提供移动地图上下或左右的能力。
-
三个选择工具(矩形、半径和套索)允许在选定的地图部分突出显示元素。
过滤等值线地图
您还可以使用在符号图过滤部分讨论的相同过滤工具,包括使用选择工具创建组和集合的能力。请注意,在选择填充地图上的区域时,您不需要选择整个区域才能将其包含在您的组或集合中。如果您需要更高的精度,请点击每个所需的区域以构建新的组或集合。现在,您将执行以下步骤来构建自己的等值线地图。
练习 6.06:构建等值线地图
在这个练习中,您将使用在练习 6.01中下载的纽约市分区 shapefile 创建并填充一个填充地图:
-
打开您现有的 Tableau 工作簿或创建一个新的工作簿。
-
如果您还没有这样做,请从
data.cityofnewyork.us/City-Government/Zoning-GIS-Data-Shapefile/kdig-pewd导入数据源。 -
通过导航到“数据”|“新建数据源”菜单添加数据源:

图 6.50:添加新的数据源
- 选择“空间文件”选项:

图 6.51:连接到空间文件
- 定位您的下载文件并选择它。数据样本将出现在导入窗口中:

图 6.52:查看空间文件属性
- 添加一个新的工作表,并确保它使用空间数据源:

图 6.53:包含来自空间文件维度和度量的工作表
- 将
Geometry度量拖到Detail卡片。Tableau 将添加Latitude和Longitude字段并创建一个地图:

图 6.54:将几何度量添加到 Detail 卡片
- 将
zonedist维度拖到Color卡片:

图 6.55:使用区域距离维度着色地图
- 通过将所有 R、C 和 M 区域汇总到
RESIDENTIAL、COMMERCIAL和MANUFACTURING组中创建一个zonedist (group)维度。点击OK保存该组为维度。

图 6.56:创建区域距离(组)维度
- 将
zonedist (group)维度拖到Color卡片:

图 6.57:使用区域距离(组)着色地图
在这个练习中,你添加了一个空间数据源,并使用 Geometry 字段填充地图。你还学习了如何使用现有和新建的维度来着色地图。在接下来的小节中,你将了解如何使用双轴地图以及它们何时被使用。
双轴地图
Tableau 允许你创建双轴地图,这样你就可以在多边形地图上叠加点数据,或者简单地使用第二个轴以新的方式显示数据。这种类型的地图可以在你希望叠加两个具有不同目的的数据变量,或者甚至来自不同数据源时使用。例如,你可以叠加基于地理边界(州)的数据集与使用符号数据(纬度/经度地址)的数据集,或者你可以简单地从一组数据点创建附加信息,如下面的示例所示。在这个示例中,你将使用第二个轴创建一个密度地图,以显示马德里地区 Airbnb 属性的最高浓度区域。
要做到这一点,你从一个现有的符号地图开始,就像本章前面构建的那样。创建双轴地图,你只需要将 Latitude 度量拖到 Columns 面板,将其放置在现有的 Latitude 度量右侧。

图 6.58:添加第二个纬度维度
Tableau 默认创建第二个地图;您需要从新的 纬度 度量下拉菜单中选择 双轴 选项。您还需要告诉 Tableau 将您的新度量视为一个维度,通过从同一菜单中选择 维度 选项。
![图 6.59:设置双轴地图
![图片 B16342_06_59.jpg]
图 6.59:设置双轴地图
一旦指定了第二个轴,您就可以移动到 标记 区域,其中已添加了一个 纬度 (2) 条目。在这种情况下,您会选择显示类型为 密度 的选项,并调整强度和透明度级别到您喜欢的程度。这将使地图保留地图的原始元素,同时添加密度标记。
密度 选项现在将以模糊的颜色显示属性浓度较高的区域。地图中间的 Centro 社区在此缩放级别将特别密集。当您放大时,单个属性将逐渐显示出来。在本节中,您回顾了双轴图表,但以地图的形式。现在,通过执行下一个练习,您将更好地掌握这些概念。
练习 6.07:创建双轴地图
在此练习中,您将创建一个双轴地图,使用符号作为基础地图,然后添加一个使用密度标记的第二轴。您将使用与之前练习中相同的马德里 Airbnb 数据源。
执行以下步骤以完成此练习:
- 打开您在 练习 6.05 中创建的
马德里住宿地图工作表。
![图 6.60:按邻里组着色的符号地图
![图片 B16342_06_60.jpg]
图 6.60:按邻里组着色的符号地图
- 将
纬度度量拖到行档案旁边现有的纬度度量旁边:
![图 6.61:使用两个纬度度量添加双轴
![图片 B16342_06_61.jpg]
图 6.61:使用两个纬度度量添加双轴
- 将新的
纬度度量设置为连续维度,并检查双轴项以将元素组合成单个地图:
![图 6.62:选择双轴选项
![图片 B16342_06_62.jpg]
图 6.62:选择双轴选项
- 在
纬度 (2)标记区域,选择密度选项:
![图 6.63:选择密度符号
![图片 B16342_06_63.jpg]
图 6.63:选择密度符号
- 通过单击
颜色卡片调整密度设置:
![图 6.64:调整密度着色
![图片 B16342_06_64.jpg]
图 6.64:调整密度着色
- 查看地图以查看
密度符号的影响:
![图 6.65:带有符号和密度的完成双轴地图
![图片 B16342_06_65.jpg]
图 6.65:带有符号和密度的完成双轴地图
在这个练习中,您创建了一个使用第一轴上的圆形符号和第二轴上的密度符号的双轴地图。您学习了如何将它们结合起来创建一个更完整的地图。您添加的第二个密度细节级别现在将以模糊的颜色显示属性浓度较高的区域。在地图中间的 Centro 社区在这个缩放级别上将会特别密集。这些额外的地图细节有助于最终用户/利益相关者在一个视图中观察地图时获得额外的上下文,而不是多次切换视图。在下一节中,您将回顾 Tableau 提供的地图增强选项,以及如何在您的地图中最佳地添加/使用它们。
地图增强
Tableau 提供了多个功能,您可以使用这些功能来升级您的地图,使其对用户更有效。其中一些是内置的,而其他则可以非常容易地添加。在本节中,您将了解一些简单的方法来改进 Tableau 中使用的基线地图。
设置地图选项
地图选项是一些简单的选择,可以用来确定用户如何与地图交互。要设置这些选项,请选择“地图”|“地图选项”菜单项,这将打开一个小窗口:
![图 6.66:地图选项菜单项]
![图片 B16342_06_66.jpg]
图 6.66:地图选项菜单项
这些选项允许用户使用平移(在地图的左右或上下移动)和缩放来导航地图,允许用户执行搜索,并允许工具栏提供的功能(径向选择等)。如果您希望地图保持固定大小和位置,请禁用这些功能。
使用现有层
Tableau 的默认背景地图提供了许多地图层,用户可以根据自己的喜好轻松选择和取消选择。地图层可以帮助您添加额外的细节,例如高速公路、边界、地形、海岸线和县边界,在这些层中添加的细节会使地图更加丰富。要更改默认地图层,请从菜单中选择“地图”|“地图层”。Tableau 提供以下层选项:
![图 6.67:地图层菜单选项]
![图片 B16342_06_67.jpg]
图 6.67:地图层菜单选项
这些层可以用来自定义地图的外观。例如,在 Madrid 列表示例中,如果您选择“街道、高速公路、路线”以及“邮编标签”,您将注意到地图上添加了额外的细节,如下面的截图所示:
![图 6.68:带有添加层的地图层菜单选项]
![图片 B16342_06_68.jpg]
图 6.68:带有添加层的地图层菜单选项
虽然与数据可视化最佳实践保持一致,但您通常会尽量减少这些层的数量和可见性,以免分散用户对地图数据的注意力。只使用足够的层来提供上下文是一种明智的方法。
此外,还有 20 多个人口统计层作为基于美国数据的叠加层,这实际上允许您根据下拉菜单中选择的人口添加数据掩码层。但如前所述,在您的地图中很少需要使用这些额外层,因为这些层往往会让利益相关者感到困惑,而不是帮助他们。
在 Tableau 中添加或删除图层非常容易,因此明智的做法是在您的地图视觉上令人满意之前花些时间探索众多选项。与大多数图表一样,地图上通常“少即是多”;确保焦点在数据上,而不是地图层上。
添加 Mapbox 背景地图
您确实有超越标准 Tableau 背景地图的选项。其中之一是将 Mapbox 背景地图嵌入到 Tableau 中——这种方法能够创建独特风格的地图。Mapbox 是一个流行的地图创建平台,使用户能够为许多应用定制地图。Tableau 在 Tableau 9.2 中添加了 Mapbox 集成,因此使用 Mapbox 背景地图的能力并不是新的,但如果您希望展示超越原生 Tableau 版本的地图,则仍然应该探索。您需要创建一个免费的 Mapbox 账户,网址为www.mapbox.com/,以构建这些地图。
要导出 Mapbox 地图以在 Tableau 中使用,请导航到 Mapbox Studio,studio.mapbox.com/,然后只需点击新建样式并从选择模板以及从弹出菜单中选择选择变体来简单地创建自己的样式:

图 6.69:选择 Mapbox 的模板和变体
然后,在地图右上角选择Share…图标,查看第三方选项以找到Tableau对话框:

图 6.70:将 Mapbox 背景地图导出到 Tableau
这为您提供了一个链接,可以在 Tableau 中用作背景地图样式,以提供定制的背景,使您的地图与标准的 Tableau 选项区分开来。该链接可以复制到剪贴板,然后添加为背景地图。在 Tableau Desktop 中,创建一个新的工作表,选择地图 | 背景地图 | 管理地图菜单项,这将打开地图服务窗口。点击添加按钮,您将有两个选项:WMS 服务器…(Web 地图服务器,类似于 Mapbox)和Mapbox 地图…。点击Mapbox选项,您将看到一个对话框屏幕:

图 6.71:使用 Mapbox URL 添加 Mapbox 地图
在这里,你可以添加一个你喜欢的样式名称,然后将你的 Mapbox 链接复制到 URL 文本框中。其余信息将根据 URL 链接自动更新,你的背景地图将准备就绪。可以使用相同的过程添加多个地图,这将为你提供超出 Tableau 原生地图背景的许多选项。现在,使用这个 Mapbox 地图风格为你的马德里工作表。点击 地图 | 背景地图 | 默认银河风格(或你的样式名称)。以下是使用新背景地图查看你的数据:

图 6.72:马德里定制的 Mapbox 地图
如果你打开 地图 | 地图层 卡,你将看到从所选 Mapbox 地图中可用的图层。请注意,每种地图风格都将有其自己的选项集。以下是你的样式所拥有的选项:

图 6.73:为 Mapbox 地图选择地图层
使用这些复选框可以轻松地自定义地图,使其与现有的点数据配合得最好。你还可以使用“淡化”滑块为显示添加一定程度的透明度。
正如你所见,Mapbox 背景地图可以用来为你的工作表和仪表板增添视觉兴趣,并且可以在 Mapbox 中使用几乎无限的色彩和样式组合进行自定义。为了吸收本节所读内容,你现在将进行一个练习,添加 Mapbox 并了解如何在 Tableau 中使用它。
练习 6.08:添加 Mapbox 背景地图
在这个练习中,你将练习将 Mapbox 数据添加到纽约分区数据中,并应用一个新 Mapbox 风格到之前使用的 GIS 数据。
执行以下步骤以完成此练习:
-
如果你还没有将数据加载到 Tableau Desktop 中,请加载
纽约市分区形状文件。 -
将
几何拖动到详细标记卡中,将创建一个纽约市地图,你之前也见过。

图 6.74:纽约市分区数据地图
注意
你可以在 studio.mapbox.com/ 上创建一个账户,并且可以免费继续练习。请确保你填写了必要的凭据。
-
现在,前往
studio.mapbox.com/并登录/注册,如果你之前还没有这样做。 -
点击
studio.mapbox.com/上的新建样式按钮。

图 6.75:在 Mapbox 中创建新风格
- 接下来,选择你想要使用的样式。为了本练习的目的,选择
街道模板作为样式。点击自定义街道按钮来创建你自己的 Mapbox 风格。

图 6.76:在 Mapbox 中选择风格
- 在加载的新页面上,点击右上角的
分享按钮,向下滚动弹出窗口并点击第三方,然后从下拉菜单中选择Tableau,如图所示,并复制集成 URL:

图 6.77:在 Mapbox 中选择 Tableau 作为第三方服务
- 在你的 Tableau Desktop 实例中,点击
地图|背景地图|管理地图,在弹出窗口中点击添加…并选择Mapbox Maps…,如图所示:

图 6.78:将新的 Mapbox 地图添加到 Tableau
- 适当地命名你的地图样式,并将集成 URL 粘贴到
Url字段中。其他字段应自动加载,如图所示。点击 OK:

图 6.79:添加新的 Mapbox 样式
纽约市分区地图应该自动加载新的 Mapbox 样式,比 Tableau 默认地图选项提供更多的细节,如图所示输出:

图 6.80:在新的 Mapbox 样式中加载的纽约市地图
如您所见,当放大时,Mapbox 背景地图提供了更多的额外细节,包括城市线和街道名称。
在这个练习中,你练习了使用 shapefile 将 Mapbox 添加到你的 Tableau 地图中,并应用了新的样式,而在练习之前,你只处理 ZIP 代码数据。有了 Mapbox,你能够为地图添加更多细节,例如街道、社区、重要景点、海岸线和高速公路。这些新增的细节增强了地图对最终用户的功能。
这总结了本章的理论部分。接下来,你将通过一组新的数据和最终活动来测试你在本课程和之前练习中学到的知识,尝试创建有用且强大的地图。
活动六.01:使用双轴和背景地图创建位置分析
作为旧金山城市部门的 数据开发者,你被要求创建一份报告/可视化,从高层次展示城市房屋收购协议的热点,并收集有关房屋、其社区、其实际地址、其收购日期、其承租人总数以及房屋收购金额的背景信息。利益相关者还希望能够通过收购日期过滤地图数据点。你将使用 GitHub 链接中提供的 SF Buyout Agreement 数据或通过以下链接下载.shp文件:packt.link/ojAf3。
执行以下步骤来完成此活动:
-
定位你从 GitHub 下载的
SF Buyout Data.shp文件,并将其作为数据源添加到 Tableau 中。 -
创建一个新的工作表,命名为
SF Buyout Map。 -
添加
买断日期作为过滤器。通过选择相对日期只包含非空值。显示买断日期过滤器。 -
在进行下一步之前,将标题编辑为
SF 买断地图,并重命名一些列名以便更容易理解。映射如下:-
案例编号–案例编号 -
买断前日期–买断前披露日期 -
买断日期–买断日期 -
买断金额–买断金额 -
Number of–租户数量 -
分析 N–邻里
-
-
将
几何形状拖动到详情卡片上。 -
复制
纬度(生成)列并创建一个双轴。 -
在第一个
纬度(生成)标记卡下,将标记类型更改为密度。 -
将
SUM(Tenants)添加到颜色标记卡,并将案例编号添加到详情标记卡。 -
对于第二个
纬度,将标记类型更改为圆形符号。 -
将
邻里添加到颜色标记卡,并将案例编号添加到详情标记卡。 -
当您或利益相关者悬停在地图上或点击地图时,为了为地图添加上下文,您将添加
地址、买断日期、买断金额和租户到工具提示中,并编辑工具提示以看起来如下所示。
预期输出如下:

图 6.81:活动 6.01 预期输出
注意
本活动的解决方案可在此处找到:packt.link/CTCxk。
摘要
本章向您介绍了许多地理功能和方法,设计师和用户可以在 Tableau 中使用这些功能和方法。能够将地理数据转化为强大、吸引人的地图,并与其他显示集成,是构建视觉洞察力的一项关键技能。您学习了如何将大小、颜色、形状和筛选功能整合到 Tableau 地图中,以便用户可以更深入地探索和理解地理信息。
您还了解到,虽然 Tableau 不是一个专门的地图平台,但它可以用来复制许多传统地图和 GIS 软件的功能。能够绘制地理数据是开发针对用户完整的 Tableau 解决方案的一项基本技能,并且可以融入任何有地理空间数据可用且与外部地图文件交互的分析中,这可以为地图添加额外的细节层。
在下一章中,您将进入课程的分析部分,即第七章:分析:创建和使用计算。下一章将扩展您创建多种类型计算的能力,这些计算超越了创建地图时使用的几个简单计算。
第七章:7. 数据分析:创建和使用计算
概述
在本章中,你将学习如何创建和使用各种类型的计算,不仅限于现有数据源内,还可以跨数据源。本章首先描述了聚合和非聚合值的定义及其区别。然后,你将了解各种类型的计算,如数值计算、字符串计算和日期计算,以及如何在 Tableau 中编写逻辑语句。
到本章结束时,你将能够创建和使用 Tableau 中的各种类型的计算。
简介
通常,分析数据的第一步是提出一些问题或目标。这可能是确定你最有利可图的客户,或者更复杂,比如调查尽管销售量高但导致亏损的产品。在确定问题或目标后,你会审计你的数据。这意味着确定数据所在的位置——所需字段是否存储在单个或多个数据源中,以及所有字段是否都易于使用。然后,你会检查数据的完整性和有效性。这意味着检查数据是否需要在清洁、合并或重构方面进行任何修改。
一旦数据经过审计,Tableau Desktop 中的工具允许你以视觉方式探索它,以便进行更流畅的分析。这可能意味着构建图表、添加交互性、将数据分组或创建计算以获得更有意义的见解。一旦分析完成,你收集的见解就可以与他人分享了。本章旨在涵盖数据分析周期的所有方面。
在本章中,你将学习如何创建和使用 Tableau 的各种计算类型,这是数据分析中的一项基本技能。区分聚合和非聚合
为了有效地使用 Tableau,你深刻理解聚合至关重要。当你添加任何数据时,Tableau 会迅速将数据面板中的数据分类为维度和度量。当一个度量进入视图时,Tableau 会对其进行聚合(通常使用SUM聚合)。
这可以通过使用来自Sample-Superstore.xlsx的Orders数据来演示,该文件可以在Documents\My Tableau Repository\Datasources\中找到,或者可以从本书的 GitHub 仓库下载,链接如下:packt.link/T9PeZ。
一旦你获得了数据访问权限,将Profit字段从数据面板拖动到行架上。注意,该字段的属性已更改为SUM(Profit),并生成一个垂直条。参见图下:


图 7.1:显示 SUM(Profit)的屏幕截图
查看工作表底部的状态栏。注意只有1 个标记,而SUM(利润)为286,397。这是数据的总聚合利润:

图 7.2:显示状态栏中 SUM(利润)的截图
现在,观察当你分解它时会发生什么。为了分解度量,取消选中聚合度量选项,该选项位于分析下的工具栏中:

图 7.3:显示聚合度量选项的截图
原来位于行架中的SUM(利润)字段现在已更改,只显示利润。此外,条形图现在被分解成多个气泡;一些气泡位于负轴上,状态栏现在显示9994 个标记:

图 7.4:显示分解利润的截图
当你取消选中聚合度量选项时,利润值变为非聚合,这反过来又打破了显示在代表数据中每个交易利润值的气泡中的利润总和的聚合利润条。在任何给定的时间点,你都可以右键单击一个气泡来查看数据并看到交易的完整细节:

图 7.5:显示查看数据选项的截图
默认情况下,聚合度量选项是开启的,所有度量都将默认聚合(除非你选择像上面解释的那样分解它们)。此外,度量的默认聚合是求和,这可以通过在数据面板中右键单击一个度量并从默认属性下的求和更改为平均值或最小值到最大值等来更改:

图 7.6:显示如何更改聚合的截图
从前面的例子中,你可以得出结论,当你看到视图中SUM(利润)时,这意味着 Tableau 正在聚合所有交易值。当你只看到利润时,这意味着 Tableau 正在关注交易值而没有对它们进行聚合。这种特定的区别很重要,尤其是在创建计算字段时。你将在深入研究创建和使用计算时进一步探讨这一点。
在前面的例子中,你看了如何聚合和分解度量。然而,当处理包括所有分类数据的维度时,还有额外的考虑。具体来说,你应该问自己:哪个/谁? 和 有多少个?。
以Sample-Superstore.xlsx文件为例,当分析子类别时,您可能会提出以下问题:哪些子类别是盈利的? 或 有多少子类别是盈利的? 第一个问题很容易回答,因为您只关心子类别字段中的盈利数据成员。当您将维度拖入视图时,您将默认获得该字段所有唯一数据成员的列表。因此,将子类别字段拖入行面板将导致以下视图:

图 7.7:显示某一维度的唯一数据成员列表的屏幕截图
然而,对于第二个问题,您需要找到具有正利润的子类别数量。这意味着找到该维度的数据成员数量。这可以通过点击子类别字段的下拉菜单,并选择在度量下可用的“计数”或“计数(不同)”选项来实现:

图 7.8:显示视图中某一维度计数和计数(不同)选项的屏幕截图
当选择“计数”或“计数(不同)”选项时,请注意,子类别列表将变为一个条形图,显示数据中总共有 17 个子类别。此方法将仅在创建子类别的电子表格中提供子类别的计数。然而,如果您需要在工作簿中的其他可视化中显示相同的信息,那么在您的“数据”面板中显示计数是有意义的,这样您就可以根据需要将其拖入视图。这可以通过两种方式实现:
- 第一种方法是将
子类别维度转换为度量,这将把原始的维度字段从显示数据成员列表转换为显示子类别唯一计数的度量:

图 7.9:显示通过将其转换为度量来聚合维度的屏幕截图
- 第二种方式是在
子类别维度上创建一个计算字段。这不仅将保持原始维度,我们还将拥有另一个可以用来获取所需输出的字段。您将在接下来的主题中了解更多关于创建计算字段的信息。
创建和使用临时/在架计算
“行”、“列”和“度量值”面板,以及“标记卡”。
您只需双击您选择的架子上现有的字段,或者,作为替代,您可以使用该字段的下拉列表中的“在架上编辑”选项,如图下所示:


这些临时的计算在创建快速、即兴的计算时很有用,你可能希望保存并重复使用,也可能不希望。你将在下面的练习中探索这一点。
练习 7.01:创建一个临时的计算来突出亏损的子类别
本练习的目的是找出哪些子类别有负利润,哪些子类别有正利润。那些有负利润的将是你亏损的子类别,并将用橙色标记。你将使用Sample-Superstore.xlsx中的Orders数据来完成这个练习。
执行以下步骤:
- 首先,创建一个条形图,显示按
Sub-Category的SUM(Sales),并在Color面板中显示SUM(Profit),如图所示。



条形图的颜色调色板为橙色和蓝色,其中橙色的阴影表示负利润,蓝色的阴影表示正利润。阴影表示利润的强度。然而,当前的任务是突出亏损的条形图,这意味着那些利润小于零的条形图。对于这个任务,利润的强度是不相关的。
为了解决这个问题,要么双击,要么在Color面板中SUM(Profit)字段的下拉菜单中使用Edit in Shelf选项,并输入以下公式:
SUM(Profit) < 0
- 按Enter键查看新的临时计算。现在它显示了两种颜色,而不是之前看到的差异颜色。在这种情况下,橙色条形图表示亏损的子类别,蓝色条形图表示盈利的子类别。请参考以下截图:



此外,如前所述,这种临时的计算是一种即兴计算,可能只能用于特定的可视化中,在这种情况下,没有必要保存这个计算。
- 为了在其他可视化中重复使用这个计算,只需通过拖放将其保存在
Data面板中,如图所示。



创建和使用不同类型的计算
Tableau 是一个简单而通用的工具,创建计算的能力使用户能够执行强大的分析,这有助于决策。大多数时候,在 Tableau 中创建计算是一个有趣的过程,但有时也可能有点令人沮丧,尤其是如果你来自不同的平台并试图复制某些功能。这些工具的结构和设计不同,试图在另一个工具中复制功能可能会让人感到沮丧。在 Tableau 中创建计算的最佳方式是从小处着手,熟悉 Tableau 提供的函数。虽然编写 Tableau 中的计算很简单,但如果可能的话,建议首先尝试使用内置的原生功能,而不是创建一个新的计算字段。以下是一些这些功能的例子:
-
在“数据”面板中右键单击任何“字符串维度”时,可用的“拆分”或“自定义拆分”功能。这个功能用于将字符串拆分为更小的子字符串。例如,将客户姓名拆分为,例如,名和姓。
-
在“数据”面板中右键单击任何维度时,可用的“分组”功能。这个功能用于将那个维度的数据成员分组到更高的类别中,例如,将地理州字段的数据成员分组到,例如,地区。
-
在“数据”面板中右键单击“日期维度”时,可用的“自定义日期”功能。这个功能用于将日期截断到不同的粒度,例如月份、月份-年份等。
-
在“数据”面板中右键单击“度量”时,可用的“分组”功能。这个功能用于将度量值分组到不同的范围桶中,例如,年龄分组从,例如 <10 岁,11-20 岁,21-30 岁,等等。
-
在“数据”面板中选择多个“字符串维度”,然后右键单击任何选定的字符串维度时,可用的“组合字段”功能。当需要将多个字符串维度组合到一个字段中时,这个功能很有用。
-
在“数据”面板中右键单击任何维度时,可用的“别名”功能。这个功能在重命名任何维度的成员时很有用。
需要注意的一点是,这里提到的所有目标都可以通过从头创建一个计算字段来实现,但由于这些原生函数易于获取和使用,最好避免麻烦并利用它们。在本章以及本书中的其他章节中,你将更详细地探索这些函数。
要了解创建计算的过程,您首先将创建一个基本计算来查找订单 ID 的唯一计数。您可以通过多种方式做到这一点。您可以将订单 ID维度更改为度量,或者点击您视图中显示的订单 ID字段的下拉菜单,然后点击度量|计数(唯一)选项。或者,您甚至可以创建一个临时计算。
在前面的主题中,您看到了如何在“数据”面板中保存一个临时计算。然而,令人费解的是,在执行基本聚合操作,如求和、平均值或计数之后尝试这样做时,您会发现临时计算无法保存。从测试来看,拖放方法似乎可以解决这个问题。尝试使用下面的计算进行测试:
COUNTD([Order ID])*1
您现在将从头开始在 Tableau 中创建一个计算。为此,您将继续以获取订单 ID 的唯一计数为目标。
在“数据”面板中右键单击“订单 ID”维度,并选择“创建”|“计算字段”选项。这将打开一个新类型在框中,如下面的截图所示:

图 7.14:显示计算框组件的截图
图 7.14显示了计算框的组件。这些如下:
-
1 – 计算名称:这是您可以定义计算名称的地方。始终建议为计算字段赋予有意义的名称。
-
数字、字符串、日期、类型转换、聚合、逻辑等。当点击这些函数中的任何一个时,Tableau 会显示该函数的语法、该函数的作用以及一个示例。请参考以下截图:

图 7.15:显示所选函数详细信息的截图
-
3 – 计算编辑器:这是您将输入公式的位置。
-
计算中存在错误`以红色字体显示,计算编辑器框将在有错误的文本附近显示一条红色波浪线。
自从您右键单击订单 ID字段以创建计算以来,Tableau 已经假设您将为该字段创建计算,因此它已经将字段提取到计算编辑器中。
在“订单 ID”之前输入单词CountD。当您输入时,Tableau 开始推荐函数以及与您输入的字符共享字符的数据字段。现在,将计算命名为"订单计数'"。您的计算框应如下截图所示:

图 7.16:显示计算订单 ID 唯一计数的公式的截图
一旦你有了有效的计算,你可以点击“确定”并继续使用它。点击“确定”将在“数据”面板中保存你的计算,如下面的截图所示:
![图 7.17:显示新创建的计算字段的截图]

![图 7.17:显示新创建的计算字段的截图]
现在,你已经在“数据”面板中有了可用的计算字段,你可以在整个工作簿中使用它。然而,还有一些重要的事项需要注意:
- 在前面的例子中,你右键单击“订单 ID”,并选择“创建 | 计算字段”选项,这打开了计算编辑器框。这也可以通过在工具栏中选择“分析 | 创建计算字段...”选项或通过在“数据”面板中单击下拉菜单并选择“创建计算字段...”来实现:
![图 7.18:显示创建计算字段的其它方法的截图]

![图 7.18:显示创建计算字段的其它方法的截图]
-
在 Tableau 中计算或计算的任何字段都将有
=作为前缀,这表示该字段是在 Tableau 中创建的,而不是从数据本身派生的。等号后面将跟随Abc或#(或类似的内容),这表示该字段的数据类型。例如,=Abc表示具有字符串输出的计算字段。 -
要对计算添加注释,你需要使用两个连续的前斜杠,即
//。Tableau 将忽略//之后的所有内容。请参考以下截图:
![图 7.19:显示如何在计算字段中添加注释的截图]

![图 7.19:显示如何在计算字段中添加注释的截图]
- 函数(图 7.19中的表格蓝文字符)在 Tableau 中不区分大小写,但数据字段(图 7.19中的橙色文字)是区分大小写的,因此,你需要特别注意大小写以及数据字段的拼写。如果有任何问题,语法验证器将给出错误,你将无法使用计算字段进行进一步分析。为了克服这个问题,你可以将所需的字段从“数据”面板拖放到计算编辑器框中,而不是键入文本,如下面的截图所示:
![图 7.20:显示将字段拖放到计算编辑器的截图]

![图 7.20:显示将字段拖放到计算编辑器的截图]
-
Tableau 支持所有标准运算符,例如乘法(*)、除法(/)、取模(%)、加法(+)、减法(-),以及所有比较运算符,例如等于(==或=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)和不等(!=或<>)。这些运算符必须键入,并且不是计算框中函数列表的一部分。
-
由于 Tableau 是一个只读工具,你正在计算的计算字段不会被写回数据,从而保持数据的完整性。
-
你可以创建一个计算字段,并在其他计算字段中使用它。
现在,你将学习如何创建和使用这些计算的一些示例。
创建和使用不同类型的计算:数值计算
数值计算是在对数值数据执行数学/算术函数时使用的,以便返回数值输出。Tableau 在当前时间点(即 2020.1 版本)支持的Number函数如下:
-
ABS函数,用于返回数字的绝对值;ROUND函数,用于将数字四舍五入到指定的十进制位数;SQRT,用于返回数字的平方根;以及ZN函数,如果存在空值则返回零,否则返回其本身的值。 -
ASIN、ACOS、ATAN、SIN、COS、TAN以及其他函数。 -
DEGREES和RADIANS。 -
HEXBINX和HEXBINY。 -
LN和LOG。 -
EXP和POWER以及其他函数。
如前所述,在选择这些函数中的任何一个时,你将看到该函数的语法、该函数目的的解释以及一个示例。此外,使用这些数值函数以及上面的算术运算符,你可以创建一些非常强大和有用的计算。
在前面的主题中,你创建了一个名为订单数量的新计算字段,它给出了你订单 ID 的唯一计数。现在,你将使用这个计算字段来创建另一个计算字段,以找到你子类别的平均订单价值。
练习 7.02:创建数值计算
本练习的目标是创建一个数值计算,以找到每个子类别的平均订单价值。你将继续使用来自Sample-Superstore.xlsx文件的订单数据,并使用销售额字段和之前创建的订单数量字段,为每个子类别创建一个名为平均订单价值(AOV)的新计算字段,并在条形图中显示它。
- 首先,将你的
子类别字段拖动到行架中。接下来,将销售额和订单数量字段拖动到列架中。现在,通过在工具栏中点击显示标记标签来启用你的条形图的标签。请参见以下截图:
![图 7.21:显示包含销售额和订单数量的子类别条形图的截图]
子类别间的订单数量
![img/B16342_07_21.jpg]
图 7.21:显示包含销售额和订单数量的子类别条形图的截图
-
创建一个名为
平均订单价值(AOV)的计算字段,其公式如下:SUM([Sales])/[Count of Orders]
你应该在屏幕上看到以下内容:
![图 7.22:显示平均订单价值(AOV)计算公式的截图]
平均订单价值(AOV)计算
![img/B16342_07_22.jpg]
图 7.22:显示平均订单价值 (AOV) 计算公式的屏幕截图
- 将
平均订单价值 (AOV)拖放到列面板中的订单数量字段旁边。参考以下屏幕截图:
![图 7.23:显示平均订单价值 (AOV) 计算的柱状图的屏幕截图]
平均订单价值 (AOV) 计算
![img/B16342_07_23.jpg]
图 7.23:显示平均订单价值 (AOV) 计算的柱状图的屏幕截图
正如你在 图 7.23 中所看到的,复印机 子类别包含 机器。
注意,平均订单价值 (AOV) 的前缀是 AGG,它代表 SUM() 用于销售额,而订单数量的字段使用的是 COUNTD() 函数。
本练习展示了创建和使用数值计算的一个示例。你使用 Sales 字段和 订单数量 字段创建了一个名为 平均订单价值 (AOV) 的新计算。由于这个 平均订单价值 (AOV) 字段具有数值输出,因此该计算被称为数值计算。
创建和使用不同类型的计算:逻辑语句
逻辑语句通常用于基于标准或条件评估。Tableau 中可用的某些逻辑函数如下:
-
如
AND、OR和NOT等运算符。 -
如
IF、ELSE、ELSEIF、CASE、IIF、IFNULL、ISNULL、ISDATE等函数。
IF…ELSE、IF…ELSEIF…ELSE 和 CASE 是最常用的逻辑函数,通常,当使用这些逻辑函数时,使用 THEN 函数来指定当表达式为真时需要显示的值。
在这里需要记住的一个重要点是,当使用 IF 语句或 CASE 语句进行逻辑评估时,你需要使用 END 函数来结束你的逻辑语句。
你已经看到了一个逻辑语句的示例,即 SUM(Profit) 大于或小于零。这个计算的输出是一个布尔输出,结果为 True 或 False。布尔计算是一种快速且简单的逻辑语句。它们执行速度快,与其他类型的逻辑语句相比性能良好。
尽管布尔计算有许多优点,但如果最终用户不了解 True 和 False 的含义,它们可能会造成混淆。布尔的意义取决于你计算中的标准。在早期示例中,结果 True 表示正利润或负利润,具体取决于你计算中指定的内容。如果最终用户不熟悉这些标准,布尔结果将无助于解决问题。
为了避免混淆,最好使用更详细的逻辑语句,并包含用户友好的标签。你将通过遵循以下练习中的步骤来探索这一点。
备注
如果你使用的是 2020.1 版本之后的 Tableau,你可能需要创建“记录数”以匹配 练习 7.03 的输出。
练习 7.03:创建逻辑计算
在这个练习中,你将创建一个逻辑计算来查找不盈利的产品,以及找出每个产品中有多少交易是不盈利的。你将使用Sample-Coffee Chain.mdb数据集的CoffeeChain Query表。这是一个Microsoft Access 数据库。数据集可以从以下链接下载:1drv.ms/u/s!Av5QCoyLTBpnmkPL8Yx_0_2KtrG4?e=rWpksB。
点击OK并将这个新字段拖动到Color轴上。你的视图将更新,如以下屏幕截图所示:
- 有产品的整体盈利能力,以及每个产品的交易中有多少是盈利的。这两个要求都是很有用的。你将首先找到你产品的整体盈利能力。

![图 7.24:显示按产品记录数量的条形图的屏幕截图
![图 7.25:显示整体盈利能力公式的屏幕截图
现在,你想要找到你产品的盈利能力。然而,盈利能力(尤其是在这种情况下)可以在两个层面上进行计算。
首先,你将连接到Sample-Coffee Chain.mdb数据集的CoffeeChain Query表,并使用Product字段和Number of records字段创建一个条形图。然后,你将创建新的计算字段,这将帮助你找到并突出显示不盈利的产品,并找出每个产品中有多少交易是不盈利的。
注意
请在以下步骤 2 中粘贴代码后,替换Profitable Product和Unprofitable Product周围的引号。这将确保输出无错误。
-
图 7.26:显示使用颜色的整体盈利能力的屏幕截图
IF SUM([Profit])>0 THEN "Profitable Product" ELSE "Unprofitable Product" END
参考以下屏幕截图:

图 7.27:显示临时计算前缀和整体盈利计算的屏幕截图
现在你已经找到了哪些产品是盈利的,现在是时候找出每个产品有多少盈利交易了。
-
修改
整体盈利计算和代码。 -
使用
IF…THEN…ELSE…END函数。公式和语法应类似于整体盈利计算,但Profit字段的聚合和显示的输出字符串有所变化。将此计算字段命名为交易盈利。公式如下:IF [Profit]>0 THEN "Profitable transaction" ELSE "Unprofitable transaction" END
请参考以下屏幕截图:

图 7.28:显示交易盈利公式的屏幕截图
- 点击
确定并将这个新字段拖入颜色面板。你的视图将更新,如以下屏幕截图所示:

图 7.29:显示交易盈利的彩色屏幕截图
如颜色图例所示,蓝色条形代表盈利交易,橙色条形代表亏损交易。从这些信息中,你可以发现一些有趣的结论。例如,它显示所有Decaf Espresso交易都是盈利的。
你现在已经成功创建并使用逻辑语句来查找每个产品的盈利情况和盈利交易。
创建和使用不同类型的计算:字符串计算
在 Tableau 中,可以在任何数据类型上执行字符串计算。Tableau 将转换并处理所有这些数据类型,并生成字符串输出。你可以在整数字段上创建字符串计算,以及通过首先将它们转换为字符串来在日期字段上创建字符串计算。你可以在 Tableau 中使用类型转换函数STR()来实现这一点。Tableau(在 2020.1 版本中)支持的字符串函数如下:
-
ASCII和CHAR等函数分别查找字符的 ASCII 码和基于 ASCII 码的字符。 -
LOWER和UPPER等大小写函数分别将字符串转换为小写和大写。 -
函数如
CONTAINS、STARTSWITH、ENDSWITH和ISDATE检查字符串或子字符串条件。 -
TRIM、LTRIM和RTRIM等函数可以删除空白空间。 -
FIND和FINDNTH等函数可以找到子字符串的位置。 -
LEFT、RIGHT和MID等函数返回字符串中的指定字符数。 -
正则表达式,如
REGEXP_EXTRACT、REGEXP_EXTRACT_NTH、REGEXP_MATCH和REGEXP_REPLACE,允许您指定要匹配、定位和管理文本的模式。 -
Tableau 中可用的其他一些字符串函数包括
LEN,它返回字符串的长度;REPLACE,它搜索指定的子字符串并将其替换为替换子字符串;SPLIT,它根据指定的分隔符从字符串中返回子字符串;以及MIN和MAX,它们返回字符串的字母顺序最小或最大值。
在本节中,您将进一步探索这些函数中的一些。
您现在将继续使用来自Sample-Superstore.xlsx的订单数据,并处理客户姓名字段。目前,此字段是客户名和姓的组合。名和姓由空格分隔。对于此示例,您将分隔每个客户的姓和名,然后找到客户的姓的首字母。
之后,您为以字母A 到 I、J 到 R和S 到 Z开头的名字创建组,以找出每个组中有多少客户。
您首先将客户姓名字段拖放到行架上。应该有 793 个唯一的客户。
要找到姓氏,您必须在客户姓名字段上创建计算。在数据面板中右键单击客户姓名字段,并选择转换下可用的拆分或自定义拆分选项。请参考以下屏幕截图:

图 7.30:显示拆分和自定义拆分选项的屏幕截图
当使用拆分函数时,Tableau 会自动创建两个名为客户姓名 – 拆分 1和客户姓名 – 拆分 2的计算字段。当您编辑这些计算字段时,您将看到拆分 1和拆分 2的以下语法:
TRIM( SPLIT( [Customer Name], " ", 1 ) )
TRIM( SPLIT( [Customer Name], " ", 2 ) )
此自动拆分目标分隔符,在本例中是空格,基于此,已将字段拆分为空格前的第一列,这是客户名,空格后的第二列,在本例中是客户姓。
自定义拆分选项比自动拆分选项提供了更多的控制。例如,这里只需要姓氏。名在此点没有用处。因此,您可以使用自定义拆分而不是自动拆分选项,它将显示以下屏幕截图:

图 7.31:显示自定义拆分选项的屏幕截图
在这里,你可以指定分隔符/定界符。你可以决定你想要第一列还是第二列,以及是否想要分割列。要只获取姓氏,请选择空格作为分隔符,然后Split off最后一个1列。你将得到一个名为Customer Name - Split 2的新计算字段。该字段的语法如下:
TRIM(SPLIT([Customer Name], " ", -1 ))
Split和Custom Split是 Tableau 提供的用于分割字符串的快捷选项。然而,你也可以通过从头开始创建一些之前提到的字符串函数的新计算字段来得到相同的结果。你现在将进一步探索这一点。
首先,解析字符串以找到空格的位置。然后,要求 Tableau 给出空格后的字符串。为了找到空格的位置,使用 Tableau 中的FIND函数。计算字段的语法应如下所示:
FIND([Customer Name]," ")
这给出了空格位置的数值。然而,你需要空格后的字符串。为了识别这一点,使用MID函数。语法应如下所示:
MID([Customer Name],FIND([Customer Name]," "))
此公式给出了空格后的字符串,但这也包括了前导空格。为了移除这个前导空格,你可以使用以下TRIM函数或LTRIM函数:
-
TRIM:TRIM(MID([Customer Name],FIND([Customer Name]," "))) -
LTRIM:LTRIM(MID([Customer Name],FIND([Customer Name]," ")))
这两个函数中的任何一个都会移除前导空格,并只给出空格后的字符串。然而,如果你不想使用TRIM或LTRIM函数,你甚至可以修改计算来调整FIND函数,如下所示:
MID([Customer Name],(FIND([Customer Name]," ")+1))
前一个示例中的+1找到空格后的第一个位置,因此它将类似于TRIM和LTRIM函数的工作方式。
讨论所有这些选项的目的是为了表明,许多字符串函数可以以不同的方式利用来得到相同的结果。现在,选择任何前面的公式并将你的计算字段保存为Last Name。参见图表:
![图 7.32:显示姓氏计算字段的屏幕截图]

图 7.32:显示姓氏计算字段的屏幕截图
现在,你已经有了客户的Last Name,是时候找到Last Name的首字母了。在这里,你同样可以使用LEFT和MID等函数。这两个函数的语法如下所示:
LEFT([Last Name],1)
MID([Last Name],1,1)
LEFT函数将从给定字符串的开始返回指定数量的字符(如前一个示例中所示为1)。
MID函数将返回字符串中间的字符,提供一个起始位置和长度(如前一个示例中所示为1,1)。因此,LEFT和MID函数都将给我们字符串的第一个字符。
在这里,你将继续使用MID函数,如下面的屏幕截图所示:
![图 7.33:显示姓氏首字母计算字段的屏幕截图]

图 7.33:显示姓氏首字母计算字段的屏幕截图
最后,是时候创建您的组了。您可以使用以下公式:
IF [Starting alphabet of Last Name] <= "I" THEN "A-I"
ELSEIF [Starting alphabet of Last Name] >= "S" THEN "S-Z"
ELSE "J-R"
END
将此计算命名为Groups-Starting alphabet of Last Name。参考以下屏幕截图:

图 7.34:显示“Groups-Starting alphabet of Last Name”计算字段的屏幕截图
将Customer Name字段在Rows轴上更改为显示客户的唯一计数。然后,将新的计算字段拖放到Columns轴上。参考以下屏幕截图:

图 7.35:显示“Groups-Starting letter of Last Name”柱状图的屏幕截图
图 7.35显示,有超过 350 位客户的姓氏以字母A到I之间的字母开头。
通常,在处理字符串数据时,您可能执行的两个主要操作是将字符串拆分为子字符串或将两个或多个字符串连接起来形成一个长字符串。您已经学会了如何拆分字符串。在接下来的练习中,您将连接两个字符串。
练习 7.04:创建字符串计算
在这个练习中,您将创建一个字符串计算,该计算将结合Product Type、Product和汇总的Sales值。您将继续使用来自Sample-Coffee Chain.mdb文件的CoffeeChain Query数据。您将使用Product Type和Product字段,以及SUM(Sales)。
- 首先创建一个使用
Product Type、Product和SUM(Sales)字段的柱状图,如图所示:

图 7.36:显示按“Product Type”和“Product”分组求和的“Sales”的柱状图
一旦创建了柱状图,创建一个计算字段,该字段是Product Type的前三个字母与Product文本和SUM(Sales)值的组合。例如,如果Product Type是Coffee,而Product是Colombian,并且这个Product的总销售额为$90,000,那么输出应该是COF-Colombian: $90000。
要实现这一点,您必须将Product Type转换为上标,然后仅选择前 3 个字符。您必须附加产品标签和SUM(Sales)值,该值需要以美元符号$开头,并且必须四舍五入以显示零位小数。您还需要添加一些特殊字符,如空格、-和:。这些可以使用单引号或双引号插入。跟随这个练习来学习如何操作。
-
首先创建一个名为
Concatenated string的新计算字段,并输入以下公式:LEFT(UPPER([Product Type]),3) + "-" + [Product] + " : "
这给出了所需字符串的第一部分。例如,如果所需的输出是COF-Colombian: $90000,则前面的计算给出输出为COF-Colombian:。
你已经完成了一半。现在,如果你在中间保存了计算,你将必须右键单击这个新的计算字段,并在“维度”面板中编辑它。如果没有,你可以在同一个计算框中继续工作。
-
现在必须附加
SUM(Sales)值,从这里事情开始变得复杂。首先,“产品类型”和“产品”是字符串值,但SUM(Sales)是整数值,所以它们不能连接,除非将SUM(Sales)转换为字符串值。此外,你需要SUM(Sales)值被四舍五入到零位小数,并且它需要以美元符号$作为前缀。记住这一点,按照以下方式修改现有的计算:LEFT(UPPER([Product Type]),3) + "-" + [Product] + " : " + STR(ROUND(SUM([Sales]),0)) -
你会看到 Tableau 不同意这个公式,并给出一个错误指示器。参考以下屏幕截图:
![图 7.37:显示连接字符串计算错误的屏幕截图]

![图 7.37:显示连接字符串计算错误的屏幕截图]
- 点击错误下拉菜单。你应该看到一个错误,显示为
Cannot mix aggregate and non-aggregate arguments with this function。参考以下屏幕截图:
![图 7.38:显示“Cannot mix aggregate and non-aggregate arguments…”错误的屏幕截图]
和非聚合参数…错误

![图 7.38:显示“Cannot mix aggregate and non-aggregate arguments…”错误的屏幕截图]
这是一个在 Tableau 中常见的经典错误。这意味着SUM(Sales)是一个聚合字段,而“产品类型”和“产品”字段作为“维度”,不是聚合的,从逻辑上讲,Tableau 无法在计算中使用聚合和非聚合值。因此,为了克服这个问题,你必须对“产品类型”和“产品”字段进行聚合。由于产品类型和产品字段都是维度,你可以使用以下任何函数:MIN、MAX或ATTR。
保存现有的计算,并在修改之前花点时间理解这三个函数。
当使用MIN函数对维度进行聚合时,你会得到字母顺序最小或最低的值。另一方面,MAX函数给出字母顺序最大或最高的值。如果字段对于所有行只有一个值,ATTR函数将给出字段的值;否则,它将返回一个星号。
-
为了演示这一点,创建一个新的工作表以在“行”面板中显示“产品类型”。然后,创建一个新的计算字段,称为“产品最小值”,使用以下公式:
MIN([Product])
参考以下屏幕截图:
![图 7.39:显示产品最小值计算的屏幕截图]

图 7.39:显示产品最小值计算的屏幕截图
保存计算。注意,尽管它有一个字符串输出,但它现在已成为“度量”面板的一部分。这是因为它现在是一个聚合字段,如前所述,任何聚合字段都将成为“度量”面板的一部分。
-
现在,创建另一个名为“产品最大值”的计算,其公式如下:
MAX([Product])
参考以下截图:

图 7.40:显示产品最大值计算的截图
-
此计算也应位于“度量”面板中。
-
最后,创建一个名为“产品属性”的计算,其公式如下:
ATTR([Product])
参考以下截图:

图 7.41 – 显示产品属性计算的截图
现在,将这些三个计算字段拖放到你的工作表中,紧接在“产品类型”字段之后,位于“行”货架中。
- 首先,将“产品最小值”字段放下,然后是“产品最大值”,最后是“产品属性”。您应该注意到这三个字段给出了不同的输出。参考以下截图:

图 7.42:显示在产品类型级别上计算出的最小值、最大值和产品属性的截图
如您所见,“产品最小值”给出的是“咖啡阿玛雷托”,“浓缩咖啡卡布奇诺”,“洋甘菊花草茶”和“大吉岭红茶”。这些是在该“产品类型”下我们“产品”字段的字母顺序最小值。同样,“产品最大值”给出的是“咖啡脱因爱尔兰奶油”,“常规浓缩咖啡”,“薄荷花草茶”和“绿茶”。这些是在该“产品类型”下您“产品”字段的字母顺序最大值。进一步地,“产品属性”既不是最小值也不是最大值;相反,它给出的是一个星号。这意味着在该“产品类型”下有超过 1 个“产品”,由于 Tableau 无法显示所有值,因此显示星号以指示每个产品类型下有超过 1 个“产品”。
- 现在将“产品”字段从“维度”面板拖动,并将其放置在“行”货架中的“产品类型”之后。参考以下截图:

图 7.43:显示在产品级别上计算出的最小值、最大值和产品属性的截图
如你所见,当 Product 字段在视图中时,所有三个计算都给出相同的值。这是因为 Product 在 Product 级别的 Min 或 Max 就是 Product 本身(即,对于哥伦比亚的 Min 或 Max 将是哥伦比亚本身)。同样,对于 Attribute 函数,由于每个 Product 下只有一个 Product 行,你得到的结果就是那个 Product 本身,而不是一个 星号。然而,当你移除 Product 的粒度时,你开始得到不同的结果。所以,请记住,如果正在聚合的维度在视图中,这三个函数都将给出相同的输出。
-
现在你已经看到了聚合维度的各种选项,你现在将返回并修改你的
Concatenated string计算。由于你有两个维度,即Product Type和Product,你必须对两者进行聚合。由于这两个维度都在视图中,你可以使用所讨论的任何函数。为此,使用MIN函数。你的公式应更新如下:MIN(LEFT(UPPER([Product Type]),3)) + "-" + MIN([Product]) + " : $" + STR(ROUND(SUM([Sales]),0))
参考以下截图:
![图 7.44:显示 Concatenated 字符串无错误计算的截图]

图 7.44:显示 Concatenated 字符串无错误计算的截图
- 点击
OK并返回你创建的显示Product Type、Product和SUM(Sales)的条形图的工作表。将这个新字段(现在在Measures面板下)拖放到Product之后的Rows面板上。参考以下截图:
![图 7.45 – 显示 Concatenated 字符串计算输出的截图]

图 7.45 – 显示 Concatenated 字符串计算输出的截图
你现在已经在 Tableau 中创建并使用了字符串函数。你使用维度和聚合 Measures 创建了一个连接字符串。你看到了如何将整数的浮点值转换为字符串,以及如何使用 MIN、MAX 或 ATTR 函数聚合维度以消除 Cannot mix aggregate and non-aggregate arguments… 错误。现在你知道如何操作字符串字段,是时候探索日期函数了。
创建和使用不同类型的计算:日期计算
当操作 Date 字段时,你可以使用 Tableau 支持的各种 Date 函数。到目前为止(即,在 2020.1 版本中),这些如下:
-
DATENAME、DATEPART、DATETRUNC、YEAR、QUARTER、MONTH、WEEK、DAY、ISOYEAR、ISOQUARTER、ISOWEEK和ISOWEEKDAY,可用于查找Date字段的日期部分。 -
DATEDIFF和DATEADD,用于查找两个日期之间的差异或基于增量间隔生成新的Date字段。 -
TODAY和NOW,它们给出当前的日期或日期和时间。 -
ISDATE,用于确定给定的字段是否为Date字段。
你现在将使用Date计算来找出客户上次购买以来已经过去了多少个月。
练习 7.05:创建日期计算
本练习的目的是创建一个Date计算,以找到客户上次购买以来的月份数。你将继续使用来自Sample-Superstore.xlsx的Orders数据,并使用客户名称和订单日期字段。
执行以下步骤:
- 首先,将
Customer Name拖入行货架。然后,右键单击并将Order Date字段拖放到Rows货架,这将创建一个菜单。选择MDY(Order Date)。参考以下截图:

图 7.46:显示订单日期的右键单击拖放菜单的截图
现在你可以在客户级别看到所有订单日期。查看每个客户的所有交易日期是没有意义的。你只对最后购买日期以及自上次购买以来过去了多少个月感兴趣。
-
要实现这一点,首先创建一个名为
Last purchase date的计算,使用以下公式:MAX([Order Date])
参考以下截图:

图 7.47:显示最后购买日期计算的截图
- 由于此计算将实时计算,
Max日期取决于视图中的维度。如果你将此新字段拖放到你的Rows货架,你应该会注意到值与MDY(Order Date)相同。这对你不起作用;你想要每个客户的最大日期,因此你必须删除MDY(Order Date)粒度。这将更新你的视图,如以下截图所示:

图 7.48:显示每个客户的最后购买日期的截图
现在你已经有了Last purchase date字段,是时候找出客户上次购买以来已经过去了多少个月了。这可以通过找出两个日期之间的差异来实现,即Last purchase date和理想情况下Today。然而,由于你的数据不是每日更新的,你将考虑结束日期为 2019 年 12 月 31 日,这是数据中的最后一天。
-
创建一个新的计算字段,称为自上次购买以来月份,并使用以下公式:
DATEDIFF('month', [Last purchase date], #2019-12-31#)
参考以下截图:

图 7.49:显示自上次购买以来月份计算的截图
-
保存此计算后,您可以将它拖到
文本架中,应该会得到期望的输出。这个计算找出最后购买日期和 2019 年 12 月 31 日之间的月数差异。一个需要注意的点是,当您需要输入硬编码的日期时,它将以井号(#)开始和结束,如上图所示。此外,如果这些数据是每日更新的,并且您想找到与Today(即当前日期)的差异,那么您可以使用Today()函数,计算将像下面这样更新:DATEDIFF('month', [Last purchase date], Today())

图 7.50:显示日期计算最终输出的截图
在这个练习中,您使用了DATEDIFF()函数来找出客户上次购买以来有多少个月。在下一节中,您将看到当产品数据值返回为空时应该做什么。
在创建和使用计算时处理空值
通常,您可能会处理包含空值的数据。这些可能是数据中的真实条目。例如,可能没有针对特定产品的销售值来报告——即使它是库存的一部分,它可能尚未售出。这些空值也可能是因为某些数据输入错误。最有可能的是,您会在数据准备阶段识别并处理这些空值。然而,情况并不总是如此。有时,您可能需要在 Tableau Desktop 中使用计算来处理它们。空值在计算字段中使用时往往会引起问题,因为当对字段进行算术运算时,它可能会导致 Tableau 中的输出为空。参见图表:

图 7.51 – 显示 Excel 数据和具有空值字段的计算输出的截图
上一张截图是一个快速草稿,用于展示左侧的 Excel 数据和右侧的 Tableau 显示。您可以看到,这两个字段(即“产品 A 的价值”和“产品 B 的价值”)在特定月份有空值。现在,当您想要找到每个月的总价值时,您需要加上产品 A 和产品 B 的价值。然而,由于这两个字段在特定月份都有空值,计算字段只显示两个列都有值的月份的输出。对于其中任何一个值缺失的月份,计算字段给出空输出。这仅仅是因为您不能在没有得到空输出的情况下对空值进行数学运算。
为了克服这个问题,您将使用ZN、IFNULL和ISNULL等函数。
本节的数据可通过以下链接下载:packt.link/k59i9。
参考本节中的 Handling Null Values in Tableau.xlsx 数据文件。首先,在 Tableau 中连接到这些数据,并创建一个快速表格视图,显示 Month、Product A 的价值 和 Product B 的价值。创建一个名为 Product A + B 的价值 的计算字段。公式如下:
SUM([Value of Product A]) + SUM([Value of Product B])
将此计算字段添加到视图中。它应该像以下屏幕截图所示更新:


图 7.52:显示对包含空值字段计算输出的屏幕截图
如你所见,计算字段需要一些调整。在执行数学运算时处理这些空值最佳方式是将它们转换为零。你将使用 ZN、IFNULL 或 ISNULL 函数之一。
首先,尝试使用 ZN 函数。ZN 代表 Zero if Null,这正是这个函数的功能;它将空值替换为零。由于两个字段在某些时候都包含空值,因此你需要为两个字段都使用 ZN 函数。调整你的计算以使用以下公式:
ZN(SUM([Value of Product A])) + ZN(SUM([Value of Product B]))
更新计算后,你的视图将像以下屏幕截图所示更新:


图 7.53:显示使用 ZN 函数计算字段输出的屏幕截图
你现在会得到每个 Month 的值,即使有 空值,因为 Tableau 现在在加总之前将这些空值转换为零。
你现在将查看 IFNULL 函数。修改你的计算字段,用 ZN 函数注释掉公式,并改用以下 IFNULL 公式:
IFNULL(SUM([Value of Product A]),0) + IFNULL(SUM([Value of Product B]),0)
参考以下屏幕截图:


图 7.54:显示 IFNULL 函数语法的屏幕截图
一旦你点击 OK,你仍然会看到每个 Month 的输出。IFNULL 函数如果表达式不是空值则返回表达式;否则返回定义的替代表达式:在这种情况下为零。
现在你已经理解了 ZN 和 IFNULL 函数,接下来你将查看 ISNULL 函数。ISNULL 函数如果表达式包含空值则返回 True;否则返回 False。换句话说,ISNULL 函数给我们一个布尔输出,要么是 True 要么是 False。如果你希望指定一些条件,当空值条件为 True 时,你应该使用 ISNULL 函数与 CASE 语句或 IF 语句一起使用。编辑现有的计算字段,注释掉 IFNULL 公式,并使用以下公式:
IF ISNULL(SUM([Value of Product A])) THEN 0 ELSE SUM([Value of Product A]) END
+
IF ISNULL(SUM([Value of Product B])) THEN 0 ELSE SUM([Value of Product B]) END
参考以下屏幕截图:


图 7.55:显示 ISNULL 函数语法的屏幕截图
点击 OK 后,你会看到你仍然为每个 Month 获得了输出。当 ISNULL 函数在 IF 语句中使用时,如果为真,将返回 Zero;否则,它返回 False condition,这是我们指定的字段。
在数据源之间创建计算
在本章的早期部分,你已经看到了如何创建和使用计算,但所有这些计算都是在同一个数据源内完成的。所有数据都在一个源中将会是一个理想化的场景;然而,情况可能并不总是如此,你可能需要处理来自多个源的数据。这意味着你可能还需要在数据源之间进行计算。
在本节中,你将专注于如何使用数据混合来创建数据源之间的计算。你还将了解如何创建和使用计算字段来连接数据。你已经在之前的章节中看到了数据混合和连接功能,你将使用这些知识来创建和使用数据源之间的计算。
你将使用 Modified CoffeeChain 数据以及 Budget Sales for CofeeChain.xlsx。这些可以在以下链接中下载:
下载完成后,将文件加载到 Tableau Desktop 中。使用 Microsoft Access 选项从 Modified_CoffeeChain.mdb 数据连接到 *CoffeeChain Query* 表。请参考以下截图:

图 7.56:显示修改后的 CoffeeChain 数据预览的截图
查看这个数据预览。注意,Date 字段是 DATETIME 数据类型,尽管时间戳是 00:00:00。一旦你熟悉了这个数据集,你将尝试获取 Budget 数据。为了实现这一点,点击数据连接窗口左侧部分的 Add 按钮,并选择 Microsoft Excel 选项来选择 Budget Sales for CoffeeChain.xlsx。这应该在两个之间创建一个跨数据库连接。请参考以下截图:

图 7.57 – 显示 CoffeeChain 数据和预算销售跨数据库连接预览的截图
连接过程中出现了问题,这由红色感叹号和预览数据的缺失表示。这是因为Access数据库中的Date字段是一个DATETIME 字段,而 Excel 数据中的Date字段是一个DATE 字段。为了将Date字段作为这两个数据集之间的公共链接字段,它必须具有相同的数据类型。因此,将DATETIME字段更改为DATE字段,然后尝试启用连接。更改数据类型可以通过多种方式完成;然而,在这里,您将使用计算方法,并使用此计算在两个数据源之间创建连接。
开始时,点击红色感叹号,然后点击您定义连接条件的窗口中左侧列下的下拉菜单。选择创建连接计算...选项。参见图表:

图 7.58:显示创建连接计算选项的屏幕截图
输入以下公式:
DATE([Date])
参见图表:

图 7.59:显示用于类型转换日期字段的创建连接计算公式的屏幕截图
由于预算销售数据中的Date字段已经是DATE 数据类型,从下拉菜单中选择Date (Budget Sale)字段。参见图表:

图 7.60:显示在预算销售数据中使用日期字段进行连接的屏幕截图
您应该看到Join条件已解决,并且您的数据集现在已准备好使用。此连接的输出将是一个单一组合数据集,然后您可以使用此组合数据集创建其他计算。
现在,您将使用数据混合在数据源之间进行计算,首先独立连接到这些数据集,然后在需要时即时将它们组合。
因此,您有Modified CoffeeChain数据和Budget Sales for CoffeeChain数据,并且您想在您的工作簿中独立使用这些数据。这不会引起问题,直到您需要从这两个数据源在一个单独的表格中获取数据。例如,假设您想找到一年中各个月份实现目标的百分比。您在Modified CoffeeChain数据中有Sales字段,在Budget Sales for CoffeeChain数据中有Budget Sales;为了找到这些月份实现目标的百分比,您需要创建一个新的计算字段。将此新计算字段命名为% Target Achieved。
首先独立连接到 Modified CoffeeChain 数据,然后连接到 Budget Sales for CoffeeChain 数据。您应该在 Data 面板中获得两个独立的数据源。参考以下截图:
![Figure 7.61: 展示预算销售和修改后的咖啡链的截图]
作为独立数据源

![Figure 7.61: 展示预算销售和修改后的咖啡链作为独立数据源的截图]
一旦您在 Tableau Desktop 中拥有这两个数据源,将 Date 字段从 Modified CoffeeChain 数据源拖动到 Rows 面板,然后从同一数据源将 Product 字段拖动到 Rows 面板中 YEAR(Date) 之后。接下来,双击 Modified CoffeeChain 数据的 Measures 面板中的 Sales。然后点击 Data 面板中的 Budget Sales for CoffeeChain 数据以启用该数据源的维度和 Measures。现在,您应该会注意到 Date 字段和 Product 字段启用了混合链接。保持这些链接不变,然后双击 Budget Sales 字段,它位于 Budget Sales for CoffeeChain 数据的 Measures 面板中。视图将更新,如下面的截图所示:
![Figure 7.62: 展示数据混合结果的截图]

![Figure 7.62: 展示数据混合结果的截图]
现在,在您的 Budget Sales for CoffeeChain 数据中创建一个新的计算字段,称为 % Target Achieved。将 Modified CoffeeChain 数据中的 Sales 字段拖动到计算框中,并将其除以 SUM([Budget Sales])。公式如下:
SUM([Sheet1 (Modified CoffeeChain)].[Sales])
/
SUM(Budget Sales [Budget Sales])
参考以下截图:
![Figure 7.63: 展示 % Target Achieved 计算公式的截图]

![Figure 7.63: 展示 % Target Achieved 计算公式的截图]
字段 Sales 显示为 [Sheet1 (Modified CoffeeChain)].[Sales],这表明该字段来自 Modified CoffeeChain 数据。点击 OK 并保存此计算。将 Default Properties 更改为格式化此新字段以显示 Percentage with 2 decimals。这可以通过使用 Default Properties > Number Format 选项完成,该选项在右键单击 Measures 面板中的字段时可用。现在,将此新计算字段拖放到视图中,您的视图应更新,如下面的截图所示:
![Figure 7.64: 展示 % Target Achieved 计算结果的截图]

![Figure 7.64: 展示 % Target Achieved 计算结果的截图]
如前一个截图所示,有些产品的 % Target Achieved 比率低于 100%,而有些产品的 % Target Achieved 比率高于 100%。您现在已经学会了在数据源之间创建计算。这里要记住的一个要点是,当您这样做时,您使用的字段始终需要聚合。
您现在将尝试一些基于您所学内容的练习。
注意
现在,尽管我们已经尝试覆盖许多 Tableau 函数,但我们仍然没有能够遍历 Tableau 所能提供的所有函数。如果您想了解更多关于 Tableau 所能提供的所有函数的信息,那么您可以查看以下链接:
help.tableau.com/current/pro/desktop/en-us/functions_all_categories.htm
help.tableau.com/current/pro/desktop/en-us/functions_all_alphabetical.htm
活动第 7.01:计算利润率
作为数据分析师,您可能会遇到需要使用Profit and Sales字段计算利润率并过滤此Profit Margin低于某个阈值的场景。这个活动的目的是计算Profit Margin,它是通过将Profit除以Sales来计算的。一旦计算出Profit Margin,您希望过滤产品,只显示Xerox产品的Profit Margin。最后,您想过滤Xerox产品,并只查看利润率超过 45%的产品。
完成步骤:
-
对于这个活动,使用来自
Sample-Superstore.xlsx文件的Orders数据。 -
创建一个表格视图来显示
Product Name、Profit和Sales。 -
在
Product Name上创建一个计算字段来识别Xerox产品,并将其他产品分组为Others。 -
使用这个新的计算字段来过滤表格,只显示
Xerox产品。 -
然后创建另一个计算字段来计算
Profit Margin,这将通过将Profit值除以Sales值来得出。 -
将这个新的计算字段添加到视图中,并确保将数字格式更改为显示两位小数的百分比。
-
使用这个新的计算字段来过滤视图,以显示利润率超过 45%的
Profit Margin,并按Profit Margin升序排序最终输出。请参考以下截图:


图 7.65:显示活动 7.01 预期输出的截图
注意
这个活动的解决方案可以在以下链接找到:packt.link/CTCxk。
活动第 7.02:计算与预算销售额的百分比完成情况
作为数据分析师,您可能会经常需要比较实际销售额与预算销售额,以确定绩效。在这个活动中,您将找出 2012 年实现了多少预算销售额目标。您将使用来自Sample-Coffee Chain.mdb数据集的CoffeeChain Query表。此活动的数据可以从以下链接下载:1drv.ms/u/s!Av5QCoyLTBpnmkPL8Yx_0_2KtrG4?e=TrYFWQ。
-
使用
Sample-Coffee Chain.mdb数据。 -
创建一个柱状图来展示 2012 年
产品的销售额。 -
创建一个计算字段,以找出所有在视图中显示的
产品相对于预算销售额的实际销售额完成率百分比。 -
根据百分比
完成率对柱状图进行着色,使得完成率低于 95%的产品被称为完成率低于 95%的目标(着色为橙色)。完成率超过 100%的被称为完成率超过 100%的目标(着色为灰色)。完成率在 95%到 100%之间的被称为完成率在 95%到 100%之间(着色为蓝色)。请参考以下屏幕截图:

图 7.66:显示活动 7.02 预期输出的屏幕截图
注意
本活动的解决方案可以在以下链接找到:packt.link/CTCxk。
摘要
在本章中,你探索了在 Tableau 中创建和使用计算的一些重要方面,并研究了聚合字段和非聚合字段之间的差异。你了解了数值、字符串和日期计算,并学习了如何编写逻辑语句和处理空值。最后,你了解了如何跨数据源使用这些计算。
在接下来的章节中,你将进入更高级的表格和详细级别计算,这将使你能够对你的数据进行更多操作。
第八章:8. 数据分析:创建和使用表计算
概述
在本章中,你将了解 Tableau 中不同类型的表计算、它们的优点以及如何有效地使用它们。本章的目标是通过从不同的视角查看数据来理解潜在的模式,从而提高你的分析技能。到本章结束时,你将能够使用表计算在你的可视化数据上执行复杂分析。
简介
在任何可视化中,都会根据视图使用的维度创建一个虚拟表格。这被添加到列、行和标记货架中。

图 8.1:视图中的虚拟表格
前一个图中突出显示的区域,包括行、列和标记货架,将构成你的详细程度。用于放置字段的空画布轮廓包含受表计算影响的虚拟表格。
表计算简单来说就是基于作用域内的表格段进行结果计算的运算。你将在接下来的章节中详细了解段和作用域。现在,假设它是整个空画布区域。所有表计算都将在空画布轮廓或虚拟表格内进行。
在前面的章节中,你学习了以有意义的方式呈现数据可视化方法。有时你可能需要分析一个表格,例如当你想要在一个类别中找到最有利可图的子类别时。这就是表计算派上用场的时候。
在本章中,你将通过各种练习了解表计算及其应用。你还将了解表计算中包含的函数,以及如何应用它们。在整个练习中,你将使用Sample - Superstore数据集。
快速表计算
如其名所示,快速表计算允许你使用该计算类型的典型设置快速将常用的表计算应用于视图。它们节省了你从数据列字段创建计算的努力。它们内置了逻辑,因此你可以直接在视图中使用它们。以下是一些最常用的表计算:
-
累计总和 -
差异 -
总百分比 -
百分比差异 -
百分位数 -
排名 -
移动平均
你将首先学习如何使用Sample - Superstore数据集应用快速表计算。你可以通过以下系统路径找到此文件:文档 | 我的 Tableau 存储库 | 数据源,然后打开Sample - Superstore.xls文件。
首先,创建一个视图,显示类别与订单日期的YEAR和利润的SUM,如下所示:

图 8.2:初始视图
表计算仅适用于度量值,因此您需要一个度量值来添加计算。要添加快速表计算,首先点击度量值下拉菜单,在本例中为SUM(Profit)。
![图 8.3:访问利润钻取
![图片 B16342_08_03.jpg]
图 8.3:访问利润钻取
导航到快速表计算菜单。
![图 8.4:各种快速表计算
![图片 B16342_08_04.jpg]
图 8.4:各种快速表计算
您可以看到有大量的快速计算可用,例如运行总、百分位数和排名。您现在将逐一详细了解这些计算。
运行总
如其名所示,运行总用于计算特定维度或表结构中度量的累积总和。它将前一个值与当前值相加,并在运行总中的当前值位置显示该结果。例如,假设您正在从事与汽车制造商相关的项目。此计算的常见用例可能是计算一年中每月的累积汽车销售,以找出该年的总销售额。您还可以按年度进一步计算,以找出迄今为止的总汽车销售额。下一个练习将详细介绍这一点。
练习 8.01:创建运行总计算
在这个练习中,您将使用运行总计算来计算特定类别在不同年份获得的累积利润。这允许您一起查看所有年份获得的利润,而不是单独的年份。以下步骤将帮助您完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。在连接面板中,点击Microsoft Excel并导航到文档|我的 Tableau 仓库|数据源,然后打开Sample - Superstore.xls文件。 -
创建一个视图,显示
类别与订单日期的YEAR和SUM(Profit),如下所示:
![图 8.5:运行总初始视图
![图片 B16342_08_05.jpg]
图 8.5:运行总初始视图
- 通过选择以下突出显示的选项,将
运行总快速计算添加到视图中:
![图 8.6:访问快速表计算 | 运行总
![图片 B16342_08_06.jpg]
图 8.6:访问快速表计算 | 运行总
- 以下视图显示了最终输出:
![图 8.7:最终输出
![图片 B16342_08_07.jpg]
图 8.7:最终输出
如您所见,通过比较前一个图(最终视图)和下一个图(初始视图),利润是通过累加前一年的利润以及当年的利润来累计的。例如,对于家具类别,运行总下的第二个值是通过前一个值和当前值计算的,即 5,458 + 3,015 = 8,473,其他值也是以类似的方式进行计算。
![图 8.8:初始视图
![图片 B16342_08_08.jpg]
图 8.8:初始视图
此视图有助于计算不同类别逐年累积的利润,以及识别哪些类别表现良好,哪些没有。这些洞察可以帮助您做出重要的业务决策,了解哪些产品可以用来产生更高的利润。
接下来,您将了解差异表计算。
差异
差异,正如其名所示,用于计算特定维度或表结构中一个度量值与其前一个值之间的差异。通常,您可能需要分析各个类别与过去的表现相比如何,即比较上一季度的产品销售。继续使用汽车制造商的例子,应用此计算的一个常见场景是将一年的月份销售进行比较。这允许您找出总销售额与上个月相比是增加还是减少。在接下来的练习中,您将学习如何将差异表计算应用于工作表。
练习 8.02:创建差异计算
在这个练习中,您将计算一个类别的跨年利润差异。这将帮助您分析该类别是否盈利:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
类别与YEAR(Order Date)和SUM(Profit)的关系,如下所示:

图 8.9:初始视图
- 将
差异快速计算添加到视图中,如图所示:

图 8.10:访问快速表计算差异
最终视图将如下所示:

图 8.11:最终输出
如您所见,结果是当年利润与上年利润之间的差异;例如,对于家具,差异下的第二个值是通过前一个值和当前值计算得出的,即 3,015 – 5,458 = -2,443。其他类别也是以类似的方式进行计算的。在此需要注意的是,第一年的值将始终为空,因为没有东西可以用来计算差异。
在下一节中,您将了解总计百分比表计算。
总计百分比
总计百分比计算用于计算特定维度或表结构中一个度量的百分比分布。例如,如果您正在分析在多个国家运营的项目,您可以计算每个国家占总收入的比例。这反过来可以突出表现不佳的国家,以及表现较好的国家。
您将在下一个练习中使用此计算。
练习 8.03:创建总计百分比计算
在这个练习中,您将为不同年份的类别计算总计百分比利润。通过这样做,您可以了解每个类别对年度利润的贡献。完成以下步骤以完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
类别与订单日期的年份和利润总和的关系,如下所示:
![图 8.12:初始视图
![img/B16342_08_09.jpg]
图 8.12:初始视图
- 将
总计百分比快速计算添加到视图中
![图 8.13:访问快速表格计算 | 总计百分比
![img/B16342_08_13.jpg]
图 8.13:访问快速表格计算 | 总计百分比
以下视图是最终输出:
![图 8.14:最终输出
![img/B16342_08_14.jpg]
图 8.14:最终输出
您可以看到利润已经被转换为所有年份利润的百分比。例如,对于家具类别,您可以首先计算所有年份利润的总和,总计为 18,451。然后,将每年的利润除以这个数字。所以,对于 2016 年,您可以计算为 5,458 / 18,451,即 29.58%。
此视图有助于找出哪一年对每个类别的利润生成更有利。下一步是识别那些年份利润更高的模式,并尝试复制这些模式以在当年产生类似或更高的利润。
下一节将探讨百分比差异表格计算。
百分比差异
如其名所示,百分比差异用于计算特定维度或表结构中度量值的百分比分布的变化。此计算首先从其前一个值中减去一个值,然后计算百分比变化。如您所注意到的,此表格计算是差异和总计百分比计算的组合。使用百分比的原因是绝对数字并不总是能展示完整的画面。例如,销售 10 辆法拉利汽车将比销售 50 辆本田汽车产生更多的利润。但如果你用实际数字进行比较,数据会说本田更有利可图,尽管实际上法拉利更有利可图。
您将在下一练习中了解更多关于使用此计算的方法。
练习 8.04:创建百分比差异计算
在这个练习中,您将为特定类别的不同年份计算百分比差异。这将帮助您从百分比的角度分析各种类别的利润差异:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
类别与订单日期的年份和利润总和的关系,如下所示:
![图 8.15:初始视图
![img/B16342_08_15.jpg]
图 8.15:初始视图
- 将
百分比差异快速计算添加到视图中:
![图 8.16:访问快速表格计算 | 百分比差异
![img/B16342_08_16.jpg]
图 8.16:访问快速表计算 | 百分比差异
以下图显示了最终输出:
![Figure 8.17: Final output]
![img/B16342_08_17.jpg]
图 8.17:最终输出
如您所见,输出显示了当前值与上一值的差异,除以上一值;对于家具类别,2016 年的百分比差异计算为 3,015 – 5,458 / 5,458,结果为-44.8%。
这种视图有助于按百分比比较各个类别的利润,并确定每个类别与上一年相比的表现如何。这可以帮助您了解该类别与上一年相比是否表现更好(或不是)。您可以进一步调查表现差异的原因,并据此采取行动。
接下来,您将学习关于排名和百分位数的表计算。
百分位数和排名
百分位数,如您所猜,用于计算特定维度或表结构中测量的百分位数。同样,排名将在特定维度或表结构中对测量进行排名。您将在下一练习中详细了解这些内容。
练习 8.05:创建百分位数和排名计算
在这个练习中,您将为特定类别计算不同年份的百分位数和排名。这将帮助您了解不同年份各种类别产生了多少利润。按照以下步骤完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
类别与YEAR(Order Date)和SUM(Profit)的关系。
![Figure 8.18: Initial view]
![img/B16342_08_09.jpg]
图 8.18:初始视图
- 将
排名快速计算添加到视图中,如图下所示:
![Figure 8.19: Accessing quick table calculation | rank]
![img/B16342_08_19.jpg]
图 8.19:访问快速表计算 | 排名
以下视图将是排名的最终输出。输出是根据SUM(Profit)的降序值进行排名的:
![Figure 8.20: Rank output on selecting the Rank quick table calculation]
![img/B16342_08_20.jpg]
图 8.20:选择排名快速表计算后的排名输出
- 类似地,通过选择
百分位数快速表计算将百分位数快速计算添加到视图中。以下图显示了此输出的最终结果:
![Figure 8.21: Percentile output on selecting the Percentile quick table calculation]
![img/B16342_08_21.jpg]
图 8.21:选择百分位数快速表计算后的百分位数输出
使用“排名”计算,你根据利润总和对特定类别的每一年进行了排名。前面的图显示了“百分位数”操作。对于“家具”类别,2016 年的利润处于第 0 百分位数,这意味着低于 3,015 美元的数据占 0%。同样,对于 2017 年,利润为 6,960 美元,处于第 100 百分位数,这意味着所有其他年份的利润都低于这个值。此视图可以帮助你按百分位数和排名逐年比较单个类别的利润,以确定每个类别与上一年相比的表现。
接下来,你将学习关于“移动平均”快速表格计算。
移动平均
“移动平均”用于计算特定维度或表格结构中动态范围内的度量值的平均值,而不是静态的。使用移动平均的优势在于,更重视近期历史数据的值,而不是使用所有历史数据。移动平均通常用于识别股价趋势,你可以分析 20 日移动平均(过去 20 天的股价),或 50 日移动平均(过去 50 天的股价),以了解股价的走势。下一项练习将详细探讨这一点。
练习 8.06:创建移动平均计算
在这个练习中,你将计算特定类别在不同年份获得的利润的移动平均。这将帮助你了解平均值是否高于或低于上一年的利润:
-
在你的 Tableau 实例中加载“Sample – Superstore”数据集。
-
创建一个视图,显示“类别”与“订单日期”的年份和“利润总和”。


图 8.22:初始视图
- 添加“移动平均”快速计算,如图所示:



此视图将是最终输出:


图 8.24:最终输出
如你所见,利润已经平均分布在所有年份的利润总额上。首先,计算所有年份利润的总和,然后,将这个数字除以年数。例如,对于 2017 年,移动平均为 8,473 / 2 = 4,236。
表格计算应用:地址和分区
在上一节中,你学习了快速表格计算。但你注意到所有这些计算都是在行级别进行的吗?如果你需要将计算应用于列级别呢?这就是地址和分区概念发挥作用的地方。
处理意味着定义计算的方向。一个计算可以水平或垂直计算,具体取决于所选选项。分区可以定义为计算的范畴;例如,你可以将视图分区为不同类别的各种年份,或者相同年份的各种类别。
在本节中,你将了解以下处理和分区数据的方法:
-
Table(across) -
Table(down) -
Table(across then down) -
Table(down then across) -
Pane(down) -
Pane(across then down) -
Pane(down then across) -
Cell -
Specific Dimensions
你将继续使用之前练习中使用的相同示例进行工作。首先,你将探索处理数据的不同方式。
Table (across)
Table(across)在表格中水平计算,并在每一行后重新开始。例如,假设你有一个行上的各种产品名称的年份在Columns架子上,以及它们的销售额。在这里,Table(across)将对单个产品的所有年份的销售额进行计算,然后为下一个产品重新开始。下一项练习将详细探讨这一点。
练习 8.07:创建 Table (across) 计算
以汽车制造商的销售额为例,假设你想比较不同年份的销售额。在这个练习中,你将使用Table(across)计算来找到这个。以下步骤将帮助你完成这个练习:
-
在你的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个显示
Category与YEAR(Order Date)和SUM(Profit)的视图。

图 8.25:初始视图
- 添加
Running Total快速计算以获得以下视图:

图 8.26:SUM(Profit)的累计总和
- 现在,选择
Compute Using然后选择Table(across),如图所示

图 8.27:选择表格(横向)
下一个图显示了最终视图。你可以看到,Profit表格计算是针对每个Category(分区)在不同Order Date年份(处理)进行的:

图 8.28:最终输出
这个视图有助于找到多年来各种类别的累计利润。这可以帮助你了解每个类别与其他类别相比的表现如何。
接下来,你将了解Table(down)计算。
Table (down)
Table(down)沿着表格垂直计算,并在每一列后重新开始。例如,假设你有一个产品名称(及其销售额)在行上的Columns架上的各种年份。Table(down)将计算一个产品在单个年份的所有销售额,然后在下一个产品处重新开始。
练习 8.08:创建 Table (down) 计算
对于这个练习,你将使用Table(down)计算按年比较各种年份的销售。这将帮助你比较年份的利润,并帮助你了解销售是改善还是下降:
-
在你的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
Category与YEAR(Order Date)和SUM(Profit)的关系。

图 8.29:初始视图
- 添加
Running Total快速计算以获得以下视图。这是默认的,即横向或水平方向:

图 8.30:SUM(Profit)的累积总和
- 选择
Compute Using然后Table(down),如下所示:

图 8.31:访问计算使用 | 表 (down)
- 以下图显示了最终视图。你可以看到,
Profit表计算是针对每个Order Date年份(分区)的三个Category值(处理)进行的:

图 8.32:最终输出
这种视图可以帮助你根据多年的利润来了解每个类别是如何表现的。你可能会基于这些结果做出重要的商业决策。
接下来,你将一起学习Table(across then down)和Table(down then across)。这两个是相反的。Table(across then down)在表格中水平计算,并将每行的末尾值加到下一行的第一个值上。Table(down then across)垂直沿表格进行计算,并将每列的末尾值加到下一列的第一个值上。
在Table(down)和Table(across)练习中,你将每个列或行的末尾总和视为单独的值。因此,你得到了不同处理结果的比较。对于Table(across then down)和Table(down then across),当前行/列的值将是之前行/列与当前行/列的结果。
考虑到之前汽车制造商销售示例,假设你执行了Table(down)然后Table(across)销售;Tableau 会首先计算当前年度所有产品的销售,然后将该值加到下一年的值上。因此,对于当前年份,你会得到前几年和当前年份的销售累积值。
练习 8.09:创建 Table (across then down) 和 Table (down then across) 计算
在这个练习中,你将继续使用之前练习中使用的示例,并使用Table(across then down)和Table(down then across)计算。以下步骤将帮助你完成这个练习:
-
在你的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
Category和Sub-Category相对于YEAR(Order Date)和SUM(Profit),如下所示。通过将Category放在Filters面板上,对Category: Technology进行筛选:


图 8.33:表(跨后下)的初始视图
- 添加
Running Total快速计算以获得以下视图。在这里,您可以得到所有年份的子类别的累积利润。默认的地址会是Table(across):


图 8.34:SUM(Profit)的累计总和
- 选择
Compute Using,然后选择Table(across then down)。


图 8.35:访问计算使用 | 表(跨后下)
以下为生成的视图。您可以通过以下图中的线条来了解计算过程:


图 8.36:表(跨后下)的工作原理
首先,对“配件”执行Table(across)计算(见橙色线条)。然后,通过Table(down)(绿色线条)计算该总额($41,937),加上“复印机”的利润($2,913),得到$44,850。这个过程会一直重复,直到表格结束。
- 要将其更改为
Table(down then across),请选择Compute Using,然后选择Table(down then across),如下所示:


图 8.37:访问计算使用 | 表(下后跨)
这将是生成的视图。同样,您可以跟随线条来了解计算过程。这与Table(across then down)的工作方式正好相反:


图 8.38:表(下后跨)的工作原理
如您所见,首先按向下方向添加利润,然后将这个总和跨到不同的年份。这个过程会一直持续到最后一年的数据。这个视图可以帮助您了解基于之前年份汇总的利润,不同子类别的表现情况。
接下来,您将学习关于窗格的内容。表计算可以在窗格上下或左右进行,具体取决于计算类型。窗格可以定义为由Rows和Columns面板上的字段组成的单元格组合,如下截图所示:


图 8.39:窗格
它们也可以被视为大表中的小表。可以在类似表格级别的操作上对窗格进行表计算。以下是一系列与窗格相关的计算:
-
Pane(across) -
Pane(down) -
Pane(across then down) -
Pane(down then across)
您将开始于Pane(across)。
练习 8.10:创建窗格(跨)计算
Pane(across)在面板内水平计算,并在下一个面板处重新开始。考虑到您之前的汽车制造商销售示例,假设您想比较不同年份的销售,同时考虑不同的汽车细分市场,如掀背车、轿车和 SUV。在这个练习中,您将使用Pane(across)计算来完成此操作。
以下步骤将帮助您完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
Category与YEAR(Order Date)、QUARTER(Order Date)和SUM(Profit)的关系,如下所示:

图 8.40:带有 SUM(Profit) 运行总量的初始视图
- 根据
Order Date的YEAR筛选条件选择2016和2017。

图 8.41:添加 YEAR 过滤器
- 您现在有两个水平面板。要激活面板表格计算,您需要在行或列中有多于一个维度。这里的面板将是一行,每个
Category,每年;因此,您将在视图中看到六个面板。第一个面板看起来像这样:

图 8.42:理解面板(横向)
- 添加 SUM(Profit) 的运行总数,然后通过再次点击
SUM(Profit)选择Pane(across)选项。

图 8.43:使用 | 面板(横向)访问计算
选择Pane(across)后,您应该看到以下输出:

图 8.44:最终输出
- 为了更好地理解这一点,将
Profit添加到另一个视图中并计算结果。

图 8.45:面板(横向)的工作原理
如您所见,每个突出显示的蓝色框只是水平地添加利润,并在每个分区或面板之后重新开始。您还可以通过参考底部表格来验证利润总和。

图 8.46:最终输出分析
这个视图可以帮助您了解不同类别基于两年订单日期的所有不同季度的总利润表现。这可以帮助您专注于利润,了解哪些季度产生了最高的利润。
接下来,您将了解Pane(down)。Pane(down)在面板内垂直计算,并在下一个面板处重新开始。
练习 8.11:面板(向下)计算
考虑到汽车制造商销售的示例,假设您想分析每个细分市场每年销售的各个汽车型号。在这里,您可以使用Pane(down)对细分市场分区进行操作。以下步骤将帮助您完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个视图,显示
YEAR(Order Date)和Category相对于QUARTER(Order Date)和SUM(Profit)的累计总和,如下所示:
![图 8.47:SUM(Profit)的初始视图及累计总和]
![图 B16342_08_47.jpg]
图 8.47:SUM(Profit)的初始视图及累计总和
- 根据“Order Date”的“YEAR”筛选为
2016和2017。
![图 8.48:添加 YEAR 筛选器]
![图 B16342_08_48.jpg]
图 8.48:添加 YEAR 筛选器
- 现在,您将拥有八个垂直面板——四个用于“2016 年”,四个用于“2017 年”——基于四个季度和两年。
![图 8.49:理解面板(向下)]
![图 B16342_08_49.jpg]
图 8.49:理解面板(向下)
- 通过再次单击
SUM(Profit)选择“面板(向下)”选项,如下所示:
![图 8.50:使用|面板(向下)访问计算]
![图 B16342_08_50.jpg]
图 8.50:使用|面板(向下)访问计算
您将看到以下输出:
![图 8.51:最终输出]
![图 B16342_08_51.jpg]
![图 8.51:最终输出]
- 为了更好地理解,将
Profit添加到视图中并查看结果。
![图 8.52:面板(向下)的工作原理]
![图 B16342_08_52.jpg]
图 8.52:面板(向下)的工作原理
如您所见,每个蓝色面板(突出显示)中的值向下求和,并且在每个面板之后此过程重新开始。在这里,您可以比较季度利润。例如,对于“2016 年”的Q1,总利润为$3,811,同样,对于“2017 年”的Q1,它为$9,265,这大约是 2.5 倍的利润。对于Q2利润则不能这么说。基于此,您可以尝试分析这种差异背后的原因,并利用这些见解调整商业策略。
接下来,您将了解“面板(先横后纵)”和“面板(先纵后横)”。“面板(先横后纵)”是“面板(先横)”和“面板(向下)”的组合;即它在面板水平方向上计算计算,并将结果与下一个面板中的值合并。“面板(先纵后横)”是“面板(先横后纵)”的相反,因为它在面板垂直方向上执行计算,并将结果与下一个面板中的值合并。下一个练习将详细探讨这一点。
练习 8.12:创建面板级计算
本练习继续以汽车制造商的销售为例。假设您想查看不同年份每个季度每个细分市场的销售。在这里,您可以使用“面板(先横后纵)”或“面板(先纵后横)”选项。结果将所有详细面板合并为一个累计总体总和。以下步骤将帮助您完成此练习:
-
在您的 Tableau 实例中加载“Sample – Superstore”数据集。
-
在创建视图之前,您必须首先为
Category和Sub-Category创建一个组合字段。这对于“面板(先横后纵)”计算是必需的,否则 Tableau 将合并子类别。选择Category和Sub-Category一起,然后,右键单击并选择“创建”然后“组合字段”,如下所示:
![图 8.53:创建组合字段]

图 8.53:创建组合字段
- 创建一个视图,显示
Order Date的YEAR和QUARTER与Category、Sub-Category以及组合字段对比。同时,添加SUM(Profit)的累计总和,如下所示:
![图 8.54:带有 SUM(Profit)累计总和的初始视图]

图 8.54:带有 SUM(Profit)累计总和的初始视图
- 根据
YEAR(Order Date)筛选2016和2017。同时,通过选择Furniture和Technology筛选Category,如下所示:
![图 8.55:添加类别和 YEAR 筛选器]

图 8.55:添加类别和 YEAR 筛选器
- 您现在有两个水平的
Year面板和两个垂直的Category面板。通过再次点击SUM(Profit)选择Pane(across then down)选项。
![图 8.56:使用|面板(先横后竖)访问计算]

图 8.56:使用|面板(先横后竖)访问计算
- 选择
Pane(across then down)后,生成的输出如下:
![图 8.57:面板(先横后竖)的最终输出]

图 8.57:面板(先横后竖)的最终输出
- 为了更好地理解,将
Profit添加到视图中并计算结果。
![图 8.58:面板(先横后竖)的工作原理]

图 8.58:面板(先横后竖)的工作原理
注意蓝色箭头,它们表示从该行的第一个值到最后一个值的利润总和;橙色箭头表示每行的最后一个值加到下一行的第一个值。这个过程一直重复,直到每年的最后一行。一旦一年完成,计算将重新开始下一年。您可以通过查看右侧的Sum(Profit)值来验证这些数字。
- 将计算更改为如图所示的
Pane(down then across):
![图 8.59:使用|面板(先竖后横)访问计算]

图 8.59:使用|面板(先竖后横)访问计算
生成的输出将如下所示:
![图 8.60:面板(先竖后横)的最终输出]

图 8.60:面板(先竖后横)的最终输出
- 为了更好地理解,将
Profit添加到视图中,并计算2016的结果。
![图 8.61:面板(先竖后横)的工作原理]

图 8.61:面板(先竖后横)的工作原理
观察蓝色箭头,它们表示从列中的第一个值到最后一个值的利润总和。橙色箭头表示每列的最后一个值加到下一列的第一个值。这个过程一直重复,直到每年的最后一行。一旦一年完成,计算将重新开始下一年。您可以通过查看右侧的Sum(Profit)值来验证这些数字。
单元格
“单元格”计算跨越单个单元格。结果与直接将度量值添加到架子上相同,如下图所示(单元格用框突出显示):

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_08_62.jpg)
图 8.62:使用单元格进行计算
两个表中的值相同。“特定维度”使用您指定的维度进行计算。您将在下一节中详细了解这一点。
创建、编辑和删除表格计算
希望您现在对快速表格计算有了很好的理解,但如果您需要使用其他计算,比如对表格中的行进行排名,怎么办?在这里,您可以使用“创建”计算窗口。Tableau 支持许多表格函数,除了快速表格计算。在本节中,您将学习如何创建、访问、编辑和删除表格计算。
创建新的表格计算
要创建表格计算,右键单击任何度量值,然后点击“创建”,然后“计算字段...”,如下所示:

图 8.63:从利润创建计算字段
当您点击“计算字段...”时,将打开一个计算编辑器窗口,如下所示:

图 8.64:计算编辑器
现在,您可以点击下拉菜单并选择“表格计算”菜单,如下所示:

图 8.65:在计算编辑器中访问表格计算功能
接下来,显示所有由 Tableau 支持的表格计算列表,如下所示:

图 8.66:各种表格计算功能
在 Tableau 中,理解这些表格计算非常容易。每个计算都是通过指定使用语法、使用计算预期的结果以及示例来定义的。
您已经熟悉了 RUNNING_TOTAL,它与 RUNNING_SUM 类似。相同的计算类型可以用于执行各种操作,如求和、平均值以及查找最小值和最大值,这些都可以在表格计算菜单下引用。
练习 8.13:使用计算编辑器创建表格计算
在您的项目中,您可能需要使用视图中的某个表格计算函数。例如,索引函数会将序列号添加到视图中的行。您可以通过创建表格计算来实现这一点。在本练习中,您将根据“利润”的年度总和计算“子类别”的排名。以下步骤将帮助您完成此练习:
- 在您的 Tableau 实例中加载“Sample – Superstore”数据集。使用您之前创建的合并字段以及“订单日期”的“年”。创建如下视图,并过滤“类别”为“家具”:

图 8.67:带有 SUM(Profit) 的初始视图
- 现在,创建一个
RANK表格计算。在数据面板中右键点击Profit并选择Create|Calculated Field…。这将打开计算编辑器。

图 8.68:使用 Profit 创建计算
-
将以下表达式添加到计算编辑器中:
RANK(SUM(Profit))
这在以下图中显示:

图 8.69:Profit_Rank 计算过程
-
将其命名为
Profit_Rank. -
将其拖拽到
Text视图上,如下所示:

图 8.70:将 Profit_Rank 计算添加到视图中
- 观察到默认方向是
Table (across)。编辑此方向并尝试更改视图中特定维度的计算。点击Profit_Rank下拉菜单并选择Edit Table Calculation…然后选择Specific Dimensions,如图所示:

图 8.71:访问编辑表格计算
使用这些选项,您可以控制表格计算的计算方式。了解这里的不同选项非常重要:
在级别上: 这决定了计算的级别。这里的级别指的是视图中不同的维度,例如Category和Sub-Category。如果选择多个维度,则默认为Deepest,这意味着计算将在最低粒度级别发生,在您的视图中即为Sub-Category。

图 8.72:在 At the level 下拉菜单下的各种选项
每重启一次: 此选项可以根据所选字段重新启动计算。

图 8.73:在 Restarting every 下拉菜单下的各种选项
显示计算辅助: 此选项突出显示根据您的选择计算的方式。如图所示,根据选择,Profit_Rank将按向下方向工作(突出显示):

图 8.74:使用显示计算辅助功能
此视图展示了如何使用视图中的维度在不同级别执行表格计算。
移除表格计算
一旦添加了表格计算,您也应该能够将其移除。这可以通过点击现有的快速表格计算并选择 Clear Table Calculation 选项来完成,如下所示:

图 8.75:选择清除表格计算选项
活动练习 8.01:管理医院床位分配
可能存在需要使用度量历史值来计算其当前值的情况,例如,在计算一年中所有季度的销售累计总和时。这反过来可以帮助你可视化整个年度的销售,或与之前季度相比的销售差异。在这种情况下,表格计算可能很有用,因为所有逻辑都是内置的,你只需要将计算应用于度量值。
在此活动中,你将应用表格计算到一个基于医院的工程项目中,以确定当前有多少病人被入院。你将考虑新入院、出院和常规随访等因素,以检查床位阈值是否足够。通过这样做,你可以确保在紧急情况下医院不会耗尽床位。
在数据集中,有一个表示当前日期的日期列,一个表示进入病人数量的 Open 列,一个表示出院数量的 Discharges 列,以及一个表示再次入院或跟进先前入院的患者数量的 Re-open 列。此外,在紧急情况下,你还需要保留 900 张床位中的 100 张空闲。如果病人数量超过 600,应该进行视觉突出显示。
注意
用于此活动的数据集可以从 packt.link/NNzlJ 查找和下载。
以下步骤将帮助你完成此活动:
-
在你的 Tableau 实例中打开并连接
活动 1的数据集。 -
创建一个名为
current_patients的计算,以找到当前入院的患者数量。这可以在考虑Open、Discharges和Re-open列之后进行计算。 -
一旦你有一个条形图视图,使用之前步骤中创建的
current_patients字段,在精确的日期级别显示日期,以及当前医院中的病人数量。这种视图可以帮助你查看给定日期有多少病人被入院。 -
在现有视图中,将
running_sum表格计算添加到current_patients表格计算中。这个视图可以帮助你可视化在给定日期被入院的患者数量,同时考虑所有之前的日子。 -
创建另一个名为 Alert 的计算,以指示病人数量超过 600。你需要使用 running_sum 来确定给定日期的病人数量。
-
现在,你应该能够分析进入医院的病人总数,并查看是否有足够的床位可用。
-
初始视图如下:

图 8.76:初始视图 – 活动
最终输出如下:

图 8.77:最终视图 – 活动
在这里,你可以看到在 2009 年,有一段时间病人的数量超过了床位数。尽管这类事件很少发生,但它们必须得到妥善管理。
通过这个活动,您加强了创建和使用表格计算的知识。这个活动帮助您看到如何使用累积值来更好地分析数据,通过突出显示可能对业务产生重大影响的不规则或事件。
注意
本活动的解决方案可在此处找到:packt.link/CTCxk
活动 8.02:为健康人群规划
在上一个活动中,您创建了一个可视化图表来显示患者数量的急剧增加。作为一名分析师,您还应该能够使用历史数据,并在患者数量上升时识别出模式。
在本活动中,您将使用范围窗口来识别当前入院人数何时增加,以及是否存在特定的可观察趋势。通过这种方式,医院可以更好地为未来做好准备。您将使用之前活动中使用的相同医院数据。以下步骤将帮助您完成本活动:
-
每周绘制
current_patients的RUNNING_SUM的窗口平均值。窗口平均值取窗口中所有值的平均值,在本例中是视图。 -
移除最后 10 周范围的平均值,以检查当前入院患者的数量是上升还是下降。创建一个参数,用作范围输入;您可以将其命名为
Range_input。 -
使用此
Range_input参数作为名为avg_admitted的WINDOW_AVG计算的输入。您需要从上周开始计算到当前周的 10 周平均值。 -
使用双轴来显示
current_patients的RUNNING_SUM和WINDOW_AVERAGE。回想一下,双轴用于在同一个视图中并排显示两个度量。在添加两个度量后,右键单击轴以启用此选项。 -
创建一个警报来比较
current_patients的RUNNING_SUM和avg_admitted。突出显示总和超过平均值的周。 -
初始视图将如下所示:
![图 8.78:初始视图 – 活动
![图片 B16342_08_78.jpg]
图 8.78:初始视图 – 活动
最终视图应如下所示:
![图 8.79:最终视图 – 活动
![图片 B16342_08_79.jpg]
图 8.79:最终视图 – 活动
您现在可以看到当前入院患者数量何时超过了 10 周的平均值。根据需求,可以通过更改输入来更改范围。一个有趣的观察结果是 7 月份,在过去 3 年中,7 月份的患者数量都高于平均水平,这表明下一年 7 月份可能发生类似的情况。
注意
本活动的解决方案可在此处找到:packt.link/CTCxk。
摘要
在本章中,你学习了表格计算。你从执行一些快速表格计算开始,这些计算用于快速在视图中应用常用的表格计算。然后,你探索了使用地址和分区应用表格计算的方法——地址定义了计算的指向,而分区定义了其范围。最后,你学习了如何使用计算编辑器创建表格计算,以及如何使用特定维度来定位视图。
在下一章中,你将学习关于“详细程度”的概念,这是一个强大的概念,用于控制视图的显示方式。
第九章:9. 数据分析:创建和使用详细级别(LOD)计算
概览
本章介绍了详细级别(LOD)计算的概念。您将了解不同类型的 LOD 计算及其使用的好处。本章的目标是通过从不同的视角查看数据来理解潜在的模式,从而提高您使用 LOD 计算的分析技能。到本章结束时,您将能够控制数据可视化的粒度,并使用 LOD 计算进行对比分析。
简介
对于任何可视化,维度决定了度量计算的级别。例如,考虑以下视图,其中利润总和是基于Country和Region计算的。这两个维度构成了确定SUM(Profit)值的细节。现在,假设您从视图中删除Region。那么,SUM(Profit)将重新计算,并且只考虑视图中的Country。相应地,SUM(Profit)的值会随着计算级别的变化而变化,如下图所示:

图 9.1:理解 LOD
LOD 计算帮助您控制可视化的粒度。您可以根据使用的 LOD 函数选择在详细级别或汇总级别查看计算结果,LOD 计算需要聚合度量。
在本章中,您将在 Tableau 中使用 LOD 计算。
在这些练习中,您将使用Sample - Superstore数据集,了解与 LOD 计算相关的不同概念。
练习 9.01:创建 LOD 计算
现在,您将使用Sample - Superstore数据集中的Profit度量创建一个 LOD 计算。以下步骤将帮助您完成此练习:
-
在您的 Tableau 实例中加载
Sample – Superstore数据集。导航到Documents | My Tableau Repository | Data Sources,然后打开Sample - Superstore.xls文件。 -
数据加载完成后,在数据面板中,右键单击
Profit并选择Create | Calculated Field…,如下所示:

图 9.2:创建计算字段
- 在计算编辑器中,从下拉菜单中选择
Aggregate以访问 LOD 计算:

图 9.3:计算字段编辑器
LOD 计算属于Aggregate函数集。有四种 LOD 计算类型:FIXED、INCLUDE、EXCLUDE和Table-Scoped。随着本章的进展,您将了解更多关于这些内容。现在,将鼠标悬停在FIXED上。注意计算语法,如下图所示:

图 9.4:Tableau 中的各种 LOD 类型
- 点击
FIXED并将其添加到计算编辑器中。将{FIXED : SUM([Profit])}公式添加到编辑器中,然后点击OK:

图 9.5:创建 LOD 计算
LOD 计算需要一个聚合度量值。如果你不聚合度量值,Tableau 将显示错误。这里的聚合意味着使用 SUM、AVG 或类似类型的计算与度量值,而不是像之前使用 SUM 函数那样直接使用度量值。
- 对于这个计算,在数据的最高粒度级别(即
国家级别)计算SUM(Profit)。将其添加到视图中,如下所示:

图 9.6:带有国家的初始视图
注意,无论你添加多少维度,度量值都不会改变:

图 9.7:带有区域的初始视图
在这个练习中,你通过比较SUM(Fixed_Profit)聚合在不同维度(如区域)上的行为,创建了一个 LOD 计算。你观察到输出度量值的值不会改变,无论视图中的其他维度如何,因为你选择了FIXED LOD 计算。
接下来,你将学习关于不同类型的 LOD 计算。
LOD 计算类型
在本节中,你将了解各种 LOD 计算。有四种 LOD 计算类型:
-
FIXED -
INCLUDE -
EXCLUDE -
表范围
现在,你将更深入地了解这些 LOD 计算中的每一个。你还将通过为每个计算执行练习来学习它们在可视化中的应用。
FIXED
FIXED LOD 计算使用指定的维度计算表达式。例如,可以识别每个国家每个地区的表现最佳的产品类别。这可以通过使用FIXED LOD 计算轻松完成。
练习 9.02:创建 FIXED LOD 计算
在这个练习中,你将在国家级别计算SUM(Profit)。假设你是一位国家级经理,你只对在国家级别产生的利润感兴趣,但偶尔也想要关注该国家的区域级别。现在,你将在特定维度级别计算一个度量值,而不是使用视图中所有维度进行计算。
注意
如果你使用的是随 Tableau 一起提供的本地副本Superstore,则国家字段将显示为国家/区域标签。这不会影响计算。
执行以下步骤以完成此练习:
-
在你的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个显示
国家和区域以及SUM(Profit)的视图。当前视图显示的是区域级别的SUM(Profit),如下所示:

图 9.8:带有国家和区域的初始视图
- 创建一个
FIXEDLOD 计算:
![图 9.9:计算编辑器]
![图片 B16342_09_09.jpg]
图 9.9:计算编辑器
- 您可以在冒号(
:)之前使用任意数量的维度。注意冒号(:)右侧的表达式必须是聚合,否则您将得到语法错误:
![图 9.10:理解 LOD 计算的语法]
![图片 B16342_09_10.jpg]
图 9.10:理解 LOD 计算的语法
- 将此计算添加到视图中:
![图 9.11:比较 LOD 和常规计算]
![图片 B16342_09_11.jpg]
图 9.11:比较 LOD 和常规计算
每行中的第二个计算是 LOD 计算。注意,无论视图中的“区域”维度如何,值都保持不变。
在这个练习中,您学习了FIXED LOD 计算类型及其应用。您还看到了在视图中添加另一个维度(如“区域”)时的计算方式。接下来,您将学习关于INCLUDE LOD 计算的内容。
INCLUDE
INCLUDE LOD 计算用于根据指定的维度和视图中使用的维度来计算值。这在需要知道详细级别的结果,但又希望视图处于较高级别时很有用。例如,计算地区级别的平均识字率,但查看州级别。在这里,您不会直接在州级别平均,而是在地区级别平均,然后重新在州级别汇总结果。下一项练习将详细介绍这一概念。
练习 9.03:创建一个 INCLUDE LOD 计算
在这个练习中,您将使用“客户”和“区域”维度来计算AVG(Profit)。您将学习如何在客户级别计算平均利润,然后再次按视图中的“区域”维度分组。完成以下步骤以完成此练习:
-
在您的 Tableau 实例中加载“Sample – Superstore”数据集。
-
创建一个视图,显示“区域”以及
AVG(Profit),如下所示:
![图 9.12:初始视图]
![图片 B16342_09_12.jpg]
![图 9.12:初始视图]
- 目前,视图显示的是“区域”级别的
AVG(Profit)。创建一个INCLUDELOD 计算并按照以下图中的公式编写公式:
![图 9.13:INCLUDE LOD 计算表达式]
![图片 B16342_09_13.jpg]
图 9.13:INCLUDE LOD 计算表达式
- 使用该地区客户产生的平均利润来计算整体平均值。复制前面的视图,并将此计算而不是
AVG(Profit)添加到以下内容中:
![图 9.14:将 LOD 计算添加到初始视图]
![图片 B16342_09_14.jpg]
图 9.14:将 LOD 计算添加到初始视图
- 通过单击计算下拉菜单并选择“度量(平均值)”选项,在“文本”和“列”架板上将聚合设置为平均值:
![图 9.15:更改计算聚合格式]
![图片 B16342_09_15.jpg]
图 9.15:更改计算聚合格式
注意,尽管维度相同,但两个视图中的数字是不同的。现在你将看到计算在 Tableau 中是如何进行的。
- 在
区域级别,为了计算平均利润,将区域内的利润相加,然后将总和除以记录总数,如下所示:
![图 9.16:计算逻辑说明
![img/B16342_09_16.jpg]
图 9.16:计算逻辑说明
- 现在是时候看看客户级别计算是如何工作的了。绘制每个客户在
中部地区产生的平均利润。一旦你有了平均值,将所有平均值($8,442)相加,然后除以Count (630)以得到该地区每位客户的$13.42 的价值。这些值可以在以下摘要卡片中参考:
![图 9.17:客户级别计算
![img/B16342_09_17.jpg]
图 9.17:客户级别计算
当你想在不使用它们的情况下查看不同级别的聚合时,这种计算很有用。
备注
你可以在细分、运输方式或任何其他维度上执行类似的计算,以了解数据中的潜在趋势。
在这个练习中,你了解了INCLUDE LOD 计算类型及其如何应用于分析维度不同级别的趋势。接下来,你将学习关于EXCLUDE LOD 计算。
EXCLUDE
EXCLUDE LOD 计算声明要从不查看 LOD 中省略的维度。它与INCLUDE LOD 相反。在EXCLUDE LOD 中,计算是在排除表达式中的指定维度的情况下进行的;也就是说,在计算结果时忽略指定的维度。继续上一个示例,你可以在视图中添加客户和产品类别,但在计算销售额时可以排除客户维度,只需在产品类别级别计算销售额。你将在下一个练习中详细了解这一点。
练习 9.04:创建一个排除 LOD 计算
在这个练习中,你将使用客户和区域维度计算AVG(Profit),并了解如何应用EXCLUDE LOD 计算。这将帮助你学习如何在视图中有客户信息的情况下,仅在区域级别计算平均利润:
-
在你的 Tableau 实例中加载
Sample – Superstore数据集。 -
创建一个显示
区域和客户维度以及AVG(Profit)的视图,如下所示:
![图 9.18:初始视图
![img/B16342_09_18.jpg]
图 9.18:初始视图
-
为
区域添加一个中央过滤器。在这里,你只查看中部地区的客户信息以及平均利润。 -
创建一个排除客户并重新计算平均利润的
EXCLUDELOD 计算,如下所示:
![图 9.19:排除 LOD 表达式
![img/B16342_09_19.jpg]
图 9.19:排除 LOD 表达式
- 将此计算添加到视图中,你将看到以下内容:

图 9.20:向视图中添加排除 LOD
-
确认聚合设置为
平均。在这里,您已排除客户级别的利润,并改为在更高粒度的区域级别进行分组。 -
在
区域级别,要计算平均利润,您可以简单地在该区域内添加利润,然后将总和除以记录数,如下所示:

图 9.21:利润计算逻辑解释
当想要查看不同级别的聚合而实际上不使用它们在视图中时,这种计算非常有用。在本练习中,您了解了EXCLUDE LOD 计算类型,以及其应用如何帮助在不同维度级别分析趋势。接下来,您将了解Table-Scoped LOD 计算。
表范围
Tableau 提供了一种定义表达式的方法,而无需使用 LOD 函数,如FIXED、INCLUDE和EXCLUDE。以下表达式返回整个表的最小利润:

图 9.22:表范围语法
Table-Scoped计算等同于没有维度声明的FIXED LOD 计算:

图 9.23:与固定 LOD 计算类型的比较
现在您已经了解了不同的 LOD 计算、它们的语法和它们的应用,您现在可以了解 Tableau 如何对 LOD 计算进行分类,以及工作表视图中需要哪些更改才能使 LOD 计算输出正确。
LOD 计算:维度或度量?
在之前的练习中,当计算 LOD 计算时,您始终使用度量来给出数值输出。FIXED LOD 计算可以根据表达式中的字段显示度量或维度。
因此,MIN ([Order_Date])}将是一个维度,因为[Order_Date]是一个维度,而{fixed Country: AVG([GDP])}将是一个度量,因为[GDP]是一个度量。相比之下,INCLUDE和EXCLUDE LOD 计算始终在度量中显示结果。
您现在将了解视图中使用的维度如何影响 LOD 计算的计算。
聚合和 LOD 计算
在之前的练习中,您在区域级别计算了AVG(Profit)的客户,但未在视图中包含客户。Tableau 是如何做到这一点的?

图 9.24:理解聚合
答案在于 Tableau 如何处理聚合级别。在本节中,您将了解 LOD 计算的底层计算与以下场景中视图中的 LOD 的比较:
-
LOD 计算比视图 LOD 更粗糙。
-
LOD 计算比视图 LOD 更精细。
-
嵌套 LOD 计算。
你现在将详细探索这些内容。
LOD 计算比视图 LOD 高
与视图相比,表达式为维度提供了更高级别的细节。例如,对于包含Region和Customer维度的视图,你可以构建一个只使用这些维度之一的 LOD 计算:
{FIXED [Region]: SUM([Profit])}
在这里,表达式提供了一个比视图更粗糙的 LOD。表达式的值基于一个维度([Region]),而视图基于两个维度([Region]和[Customer])。
结果是,在视图中使用 LOD 计算会导致某些值被复制,即多次出现。观察每个客户的度量值。这就是你在EXCLUDE LOD 练习中看到的情况。
![图 9.25:与排除 LOD 计算输出的相似性]

![图 9.25:与排除 LOD 计算输出的相似性]
LOD 计算比视图 LOD 更精细
当引用维度的超集时,表达式提供的 LOD 比视图更精细。当使用时,Tableau 将结果聚合到视图级别。例如,以下 LOD 表达式引用了两个维度:
{FIXED [Region],[Customer]: AVG([Profit])}
当这个表达式在只有Region作为其 LOD 的视图中使用时,值必须进行聚合。如果你将这个表达式拖到面板上,你会看到以下内容:
AVG([{FIXED [Region]], [Customer]] : AVG([Profit]])}])
这正是INCLUDE LOD 计算练习中发生的情况:
![图 9.26:比较更精细的视图与包含 LOD 输出]

![图 9.26:比较更精细的视图与包含 LOD 输出]
当你在客户级别计算平均利润,而视图只有Region时,所有利润首先在客户级别进行平均。然后,这个结果再次在Region级别进行平均,这就是前一个图所示的最后输出。
嵌套 LOD 计算
在嵌套 LOD 计算中,一个 LOD 表达式在另一个 LOD 表达式中使用,如下所示:
![图 9.27:嵌套 LOD 语法]

![图 9.27:嵌套 LOD 语法]
在这里,执行了一个INCLUDE LOD;也就是说,在客户级别计算平均利润,然后在外部FIXED LOD 中再次将此输出在REGION级别进行平均。
当使用嵌套 LOD 时,内部表达式从外部表达式继承其维度。这意味着你首先计算内部 LOD 的平均值,但也要为“区域”保持“固定”级别。生成的输出如下:
![图 9.28:嵌套 LOD 输出]

![图 9.28:嵌套 LOD 输出]
你能识别出哪个计算与这个结果匹配吗?它是INCLUDE LOD 计算。
嵌套 LOD 目前在工作表中用途有限(取决于所需的复杂性),但在 Tableau 中是一个强大的概念。
现在你已经熟悉了 LOD 计算的内部工作原理,是时候学习工作簿中不同组件如何影响 LOD 计算输出了。你将了解过滤器应用和 LOD 计算的一些限制。
过滤器对 LOD 计算的影响
Tableau 中有不同种类的过滤器。由于 LOD 计算根据视图修改聚合级别,因此应用的过滤器根据所应用的 LOD 计算类型执行。以下图表描述了视图中的过滤器是如何执行的:
![图 9.29:过滤器执行顺序]
![img/B16342_09_29.jpg]
图 9.29:过滤器执行顺序
这些将在以下部分更详细地定义:
- 提取过滤器:提取过滤器在你提取数据时应用,如下图中所示:
![图 9.30:添加提取过滤器]
![img/B16342_09_30.jpg]
图 9.30:添加提取过滤器
提取过滤器在 LOD 计算之前执行。
- 数据源过滤器:这些过滤器在你添加数据到数据探索标签页时应用,如下图中所示:
![图 9.31:添加数据源过滤器]
![img/B16342_09_31.jpg]
图 9.31:添加数据源过滤器
与提取过滤器一样,数据源过滤器在 LOD 计算执行之前应用。
- 上下文过滤器:上下文过滤器是一种独立的过滤器类型,它决定了视图中其他过滤器中可用的值。它创建了一个数据分区,确保后续的过滤器只加载分区数据,而不是整个数据集的值。要在上下文中添加过滤器,请点击下拉菜单并选择添加到上下文,如下所示:
![图 9.32:最终过滤器到上下文]
![img/B16342_09_32.jpg]
图 9.32:最终过滤器到上下文
上下文过滤器在 LOD 计算之前执行。作为良好实践,为了确保 LOD 计算正常工作,请确保将所有过滤器添加到上下文。
-
维度过滤器:维度过滤器与添加到过滤器架的维度相关。固定的 LOD 计算在维度过滤器之前执行。INCLUDE/EXCLUDE LOD 计算在维度过滤器之后执行。
-
度量值和表计算过滤器:这两个过滤器在所有 LOD 计算执行之后执行。
现在你已经了解了 LOD 计算的执行过程,你还将了解它们的一些限制。以下是 LOD 计算的一些主要限制:
-
一些数据源,如 Microsoft Access、基于 Microsoft Jet 的连接(Microsoft Excel、Microsoft Access 和 Cubes 的连接器)可能不支持 LOD 计算。
-
当使用 LOD 计算进行数据混合时,主数据源中的链接字段必须在你可以使用来自次要数据源的 LOD 计算之前在视图中可用,否则可能无法工作。
-
LOD 计算在数据探索标签页上不显示。因此,你无法将这些 LOD 计算添加到过滤器中。
-
当在 LOD 计算中使用参数时,你必须通过参数名称引用它,而不是通过值,否则可能会得到错误的结果。
现在你已经了解了 LOD 计算,是时候通过一些可能在实际情况下出现的活动来实践了。
活动九.01:识别顶尖销售主管
想象你是一家 ABC 营销公司的数据可视化师,被分配了一个识别一个细分市场中的顶尖表现者的任务。你提供了一个包含所有销售代表姓名、他们工作的城市和州以及销售订单详情(包括订单 ID 和订单日期)的数据集。
注意
你可以在本章的 GitHub 仓库中找到用于此活动的数据集,网址为packt.link/v7C3u。
要完成这个活动,你必须识别出每个城市中销售额最高的销售代表。这个活动旨在加强你对 LOD 计算的了解,并给你一个将所学知识应用于实际案例的机会。
以下步骤将帮助你完成这个活动:
-
在你的 Tableau 实例中打开数据集。
-
数据应包括
订单 ID、订单日期、销售代表的姓名、州、城市和销售额。你需要使用FIXEDLOD 计算来识别每个城市的顶尖销售主管。 -
创建一个包含
州、城市、销售主管、订单 ID和SUM(销售额)的视图。使用排序选项按SUM(销售额)降序排序。这个视图为你提供了不同城市的销售整体情况,包括订单 ID 和销售该订单的销售主管。 -
识别销售金额最高的订单的销售主管。为此,创建一个
FIXEDLOD 计算来识别每个城市和州的销售额最高的订单。 -
一旦你得到了最大销售额,编写另一个计算来识别销售这个订单的销售主管,使用前面的 LOD 计算。然后,使用这个作为过滤器来显示视图中销售额最高的销售主管。最终输出应列出所有州和城市,以及销售主管的姓名和销售额。
初始视图将如下所示:

图 9.33:活动 1 初始视图
最终输出将如下所示:

图 9.34:活动 1 最终视图
在这个活动中,你使用FIXED LOD 计算识别了顶尖的销售表现者。这个活动模拟了一个现实世界的应用,其中你需要识别类别中的顶尖表现实例,例如顶尖销售产品。通过改变 LOD 表达式中的维度,你可以改变视图的计算方式,从而在数据的各个维度上重用相同的概念。
注意
此活动的解决方案可以在以下位置找到:packt.link/CTCxk。
活动九.02:执行比较分析
在任何数据可视化项目中,另一个常见用例是根据参数在不同维度之间显示比较。例如,在快餐连锁店中,一些产品的销量超过其他产品。通过识别这些模式,你可以进一步分析这些销售的原因,并据此制定策略。这可能意味着根据最畅销的产品推出新产品,创建组合优惠等。在接下来的活动中,你将处理食品项目数据集。你将比较各种食品项目的烹饪时间。
此活动旨在加强你使用比较分析进行 LOD 计算的知识。在开始活动之前,你必须首先了解数据。数据包含有关食品项目的信息,例如名称、饮食(veg或non-veg)、cook_time、风味类型(包含甜、酸、辣或苦)和课程类型(如开胃菜、小吃、主菜或甜点)。
注意
你可以在packt.link/Ie1Ta找到用于此活动的数据集。
按照以下步骤完成活动:
-
在你的 Tableau 实例中打开此活动的数据集。
-
数据包括食物菜肴名称、饮食、烹饪时间、风味类型和课程类型。在这里,你需要比较不同菜肴的烹饪时间。对于此活动,你将仅比较甜点的烹饪时间。
-
创建一个包含菜肴名称和烹饪时间的条形图视图。
-
创建一个包含甜点类别菜肴的参数选择。首先,你需要创建一个计算来检查菜肴是否是甜点。如果是,保留该菜肴,否则可以丢弃。然后,将此计算作为参数的输入。
-
创建一个
EXCLUDELOD 计算,仅保留所选菜肴的烹饪时间。如果没有选择菜肴,烹饪时间应为0。通过这样做,你正在创建一个基准,用于比较其他菜肴的烹饪时间。 -
创建另一个计算,该计算显示所有其他菜肴与所选菜肴的烹饪时间差。此计算显示其他菜肴是否比所选菜肴烹饪得更快(或不是)。
-
将此计算添加到初始视图中。现在你可以轻松地比较所选菜肴与数据集中所有其他菜肴的烹饪时间。
初始视图将看起来如下所示:
![图 9.35:活动 2 初始视图
![img/B16342_09_35.jpg]
图 9.35:活动 2 初始视图
最终输出应如下所示:
![图 9.36:活动 2 最终视图
![img/B16342_09_36.jpg]

图 10.1:使用咖啡连锁数据的示例仪表板
正如您所看到的,仪表板利用了许多 Tableau 功能,例如图表类型、标题、参数和过滤器。仪表板内容的每个组件——图表、地图和三个计算值面板——都使用了您从数据集中构建的单独的工作表。这使得我们能够通过将选定的工作表及其相关的参数、过滤器和图例插入仪表板框架中来创建仪表板。请注意,元素从上到下和从左到右的对称性,页面顶部的总结值随后是更详细的数据,随着您从上到下移动。颜色和谐且有限,每个级别的字体大小一致,图表内的元素大小最小化,以便观众不会被大量的视觉噪音分散注意力。仪表板非常易于阅读和导航。
将其与以下使用相同元素但未保持最佳设计实践的糟糕设计的仪表板进行对比。

图 10.2:糟糕的仪表板设计示例
尽管这个版本保持了自上而下的相同流程,但它揭示了多个设计缺陷,这使得阅读更加困难,而并未增加任何额外的价值:
-
顶级元素使用了不同的字体大小。
-
下一个级别使用了字体太小而无法产生影响的字体,以及不一致的标题格式。
-
图表太小,无法有效地在仪表板上使用。
这个比较应该让你对良好设计与不良设计的重要性有所了解,我相当确信,作为一名分析师,你可能已经见过更糟糕的仪表板设计,但这应该会让你对仪表板上一致性和适当的大小、文本和颜色的重要性有所认识。
现在,让我们转向概述设计原则,这些原则是创建有效且吸引人的仪表板所应遵循的。
基本布局
Tableau 仪表板在概念上很简单;然而,对于新用户来说,实施起来可能具有挑战性。即使是经验丰富的用户也发现仪表板设计是 Tableau 更具挑战性的方面之一。设计一个 Tableau 仪表板不仅仅是将元素放置在画布上,调整大小以完美地适应页面。相反,你需要使用一系列对象,如文本框、图像、水平/垂直对象以及由你之前创建的工作表填充的网页对象(我们通常使用容器这个术语),结合图像、文本和其他相关元素。虽然学习曲线有点陡峭,但最终结果是能够创建出充满信息和洞察力的动态、吸引人的仪表板。
在设计过程中,你可以结合最佳数据可视化实践,包括间距、尺寸、布局、颜色和用户交互,以及 Tableau 提供的众多工具,来创建强大且直观的仪表板。有关最佳实践的资料可以在以下链接找到:www.tableau.com/learn/articles/data-visualization-tips。在本节中,你将首先了解一些最佳实践,然后再继续使用特定的 Tableau 仪表板对象来展示你的信息。让我们从一般的设计实践开始。
显示尺寸
设计仪表板时,首先要了解用户是谁以及他们通常会怎样查看仪表板。你应该了解我们的用户是否会从台式机、笔记本电脑、平板电脑或其他移动设备工作。将显示尺寸视为在构建仪表板时必须决定的画布大小;你应该根据仪表板的预期用途——无论是在笔记本电脑、台式机还是移动设备上——来调整你的显示尺寸。如果用户有超大的显示器,你可以潜在地增加仪表板中单个项目的尺寸以提高可读性。幸运的是,Tableau 的最新版本允许设计师以多种终端用户格式查看仪表板——你可以看到你的仪表板在笔记本电脑用户和从移动设备查看的人眼中的样子。
定位
定位指的是仪表板布局的有效设计,相关项目分组,主要指标在仪表板上获得最佳位置(如下一图所示),通常位于仪表板顶部。对于西方文化,流向是从左到右和从上到下,就像用户在读书一样。因此,为了优化我们的设计,你应该将最重要的指标放在页面的顶部,将次要指标放在下面。理想情况下,你可以将辅助指标分组在页面与相关主要指标相同的一侧,这样用户就可以轻松地跟随仪表板的流程。
这里有一个如何在你最终的仪表板上定位内容的通用框架:

图 10.3:仪表板的一般结构
理念是在仪表板的顶部有一个信息丰富的标题,同时高效地利用页面上的宝贵空间。这通常随后是一个包含摘要指标的章节,这些指标是高管可能更愿意查看的。接下来是详细的图表或表格;这是普通用户需要能够筛选数据以了解更详细细节的部分。最后,你通常将过滤器放置在右侧最远的位置,这个区域屏幕空间的价值较低——或者你可以使用滑动面板在需要时隐藏过滤器。始终记住,在西方文化中,最有价值的视觉空间位于页面的左上角,因此你应该避免在该区域堆放过滤器、图像、标志或详细的图表。
间距
仪表盘设计中的一个关键考虑因素是给用户留出足够的空白空间。如果仪表盘元素过于拥挤,用户将难以理解每个元素,整体效果将远低于最佳。使用 Tableau 空白对象(一个空白容器,它允许你在仪表盘上添加间距和/或其他视觉元素)可以使仪表盘更容易阅读,并最终产生更大的影响。空白对象可以在 Tableau 对象标签中找到,位于其他元素(如垂直和水平对象)旁边。
注意在前面的例子中,元素是如何“呼吸”的;它们不会相互碰撞或在任何时候显得拥挤。这也帮助观众理解设计的流程,因为他们可以轻松地从上到下、从左到右导航,而不会产生任何混淆。
颜色

图 10.4:一个视觉上不吸引人的仪表盘示例
作为仪表盘设计师,你需要抵制使用过多对比色(如图所示)的诱惑,这最终可能会让用户感到困惑或误导。人类的视觉系统在一次性处理颜色数量上有局限性,因此超过这个水平的仪表盘看起来会显得视觉混乱,并失去其影响力。以下是有用的参考资料,用于处理颜色:www.perceptualedge.com/articles/visual_business_intelligence/rules_for_using_color.pdf 和 colorbrewer2.org。理想情况下,我们的仪表盘应该使用三到四种颜色或品牌调色板,并保持一致,这样用户就可以轻松地识别多个图表中的常见元素。正如我们将在后面的例子中看到的,Tableau 使得使用众多可用配色方案中的任何一个来更改颜色变得非常容易。
我们的最终仪表盘遵循这一原则,通过在摘要部分使用单一的主要颜色,在图表中使用第二种主要颜色,以及为两个地图使用一致的配色方案。总体而言,这为仪表盘提供了和谐的外观和感觉。
当你尝试使用过多颜色时会发生什么?以下是一个例子:

图 10.5:图表中过度使用颜色
你现在为区域图中的每个区域代码都有了颜色,但目的是什么?现在有 100 多种颜色,其中许多重复了三次甚至四次。即使你有 100 种独特的颜色调色板,许多颜色也难以与相似的颜色区分开来。你所做的一切只是给观众增加了更多的工作;用户将花费时间试图解码每种颜色代表什么,而不是仅仅关注数据点的分布。重要的是要记住,只有在颜色有助于讲述故事时才应使用颜色;在前面的例子中,你可以使用五种颜色来突出显示区域级别的状态。这可能会显示有意义的模式,而不会使仪表板用户感到不知所措,同时如果可能的话,还可以利用其他图表类型。
尺寸
由于仪表板空间有限,适当的尺寸至关重要。尺寸也与定位相关;如果你努力使元素尺寸一致,我们的用户将看到仪表板的自然流动,并专注于内容而不是导航。
尺寸可以从两个方面来考虑;第一个是指仪表板中单个元素(图表、总结数字等)的尺寸。换句话说,组成仪表板的每个元素的物理占用空间。
尺寸的第二个用途是指你如何设计更大元素中的单个项目。例如,你需要决定图表标题的大小,以及标签、条形图和折线图的大小,以及其他类似的属性。如果这些项目太大,我们的仪表板就会变得杂乱,实际信息可能会变得难以理解。如果它们太小,用户可能难以解释每个仪表板元素中的信息。你需要找到一个平衡点,使信息显示最大化,并得到适当的标题、标签和其他图表元素的正确使用。以下是一些关于标记适当和不适当尺寸的例子:

图 10.6:尺寸标记对于可读性很重要
虽然左侧的标记看起来很小,但请记住,当工作表添加到仪表板中时,由于仪表板中的尺寸压缩,它们将显得更大。右侧的图表已经有了如此大的标记,以至于结果是数据点的遮挡(重叠)。当放置在仪表板中时,这些标记将由于图表分配的空间减少而显得更大。这里的建议是使标记小,然后在图表添加到你的仪表板后调整其大小。
文本
在仪表板中使用文本的方式是另一个重要的考虑因素。虽然文本的正确使用在仪表板设计中可能看起来是次要的考虑因素,但你需要认识到,对文本元素的不当使用可能会损害仪表板的其他部分。就像颜色一样,你希望使用的字体数量最小化,理想情况下,每个仪表板限制在两到三种字体。文本样式应跨所有单个图表标题和标签保持一致,你可能还会选择第二种字体用于标题或工具提示。目标是使用非常易读的字体样式,并让文本支持信息而不显得过于繁重。
注意我们之前仪表板示例中字体大小的使用,以及它们在每种类型对象中的一致性。还要注意相对大小,以及较大的字体用于标题和摘要指标,而筛选器和图例文本则要小得多。
练习 10.01:文本格式化 – 工作簿与工作表
在这个练习中,你将通过使用 Sample – Coffee Chain 数据集并探索格式化面板来回顾 Tableau 提供的不同文本格式化选项。
这里是数据下载链接:packt.link/zT15G。
-
打开 Tableau 并将 Sample – Coffee Chain 数据加载到您的 Tableau 实例中。
-
在工作簿级别以及单个元素级别进行格式化。在菜单栏中导航到“格式 | 工作簿”。以下是你应该获得的内容:

图 10.7:格式化工作簿选项
这允许你设置适用于工作簿的全局选项,这些选项也适用于仪表板样式,这是一种建立一致视觉外观的好方法。
- 注意,可以通过选择“格式”菜单命令在任何单个工作表或文本对象上覆盖这些选项。格式化单个工作表是一个两步过程——首先,在空白工作区域右键单击并选择“格式”选项。这将打开工作区左侧的一个标签页,这是编辑“字体”、“对齐”、“阴影”、“边框”和“线条”的第二个步骤,分别在“工作表”、“行”和“列”级别。

图 10.8:对象格式化选项
这些是 Tableau 中的文本格式化选项,包括工作簿(完整报告/仪表板)级别以及工作表(单个工作表)级别。虽然这个练习的范围非常有限,但它应该让你在进入后续章节的更复杂元素之前,对文本格式化有一些基本的了解,包括 Tableau 交互和您将用于仪表板交互的对象。
大多数仪表板都需要用户端的一定程度的交互。过滤器是提供用户交互的常见手段,但你也可以通过动作、工具提示和高亮显示来设计,使仪表板生动起来。Tableau 为仪表板设计师提供了多个工具,如工具提示、动作、参数等;挑战在于使它们无缝融合,从而增强用户体验。以下是这些工具的简要总结:
-
过滤器允许用户轻松地减少或自定义仪表板中显示的数据。
-
参数通常像过滤器一样工作,但可以由仪表板设计师自定义,以限制或引导用户交互。
-
动作是在仪表板级别设置的,根据用户何时何地点击仪表板中的元素来应用规则。
-
图例可用于提供上下文,并允许用户突出显示特定的数据元素。
-
突出显示器可用于在多个图表或表格中显示链接的数据元素。
你希望保持这些工具尽可能不引人注目,以便为重要内容保留主要画布空间。因此,你通常会将它们放置在仪表板页面的右侧,甚至隐藏在滑动面板中,以便最大化显示空间。你已经涵盖了前面的章节,以及本章,你将在仪表板中使用相同的交互元素。
仪表板对象
对象是用于构建仪表板的 Tableau 元素,通常位于仪表板窗口的左下角。你可以把它们看作是可以以无数种方式组合的模块化组件,以创建仪表板。一些对象将用作之前创建的 Tableau 工作表的容器,而另一些则包含外部或新创建的内容。大多数对象可以一起使用,为用户提供定制的体验。使用对象,你可以完全自定义你构建的每个仪表板。
现在,让我们详细考虑每种对象类型。
垂直对象
垂直对象是经常用作容器的对象,用于在仪表板中显示一个或多个 Tableau 工作表。它们可以作为拼贴框架中的独立容器使用,或者位于现有的垂直或水平容器内部。换句话说,它们可以在单个仪表板中嵌套多次,尽管这种方法在实际应用中存在一定的限制,我们很快就会看到。垂直对象还可以用作浮动容器,其中屏幕上的位置由设计师指定。
使用垂直对象从上到下辅助布局你的仪表板;然后你可以轻松地在每个垂直容器内添加图表、地图和其他工作表类型。

图 10.9:选择垂直对象
垂直对象由于其多功能性和能够在单个主对象内嵌套多个容器的能力,很可能是许多仪表板上最常用的对象类型。在我们的示例仪表板上,我们使用垂直对象来包含大部分图表内容。在大多数情况下,我们的垂直容器将基于其在仪表板中的位置具有一组固定的坐标(x, y, 宽度和高度),但您可以使用它们作为具有一组坐标的浮动容器,这些坐标允许容器在仪表板结构之外浮动。要设置浮动选项,请右键单击垂直对象内部并选择“浮动”菜单选项。
![图 10.10:创建浮动对象]
![图片 B16342_10_10.jpg]
图 10.10:创建浮动对象
这将创建一个小窗口,您可以在其中使用“布局”选项卡来调整坐标。
![图 10.11:定位浮动对象]
![图片 B16342_10_11.jpg]
图 10.11:定位浮动对象
一旦设置了 x、y、w 和 h 值,容器将驻留在该位置,无论其他非浮动对象的定位如何。在使用浮动对象时请小心,以免干扰仪表板中的数据显示。
水平对象
“水平”对象是经常使用的容器,旨在在仪表板内显示一个或多个 Tableau 工作表。它们可以作为拼贴框架中的独立容器使用,或者位于现有的垂直或水平容器内部。与垂直对象一样,它们也可以用作浮动容器,其中屏幕上的定位由设计师指定。
您经常使用水平容器在仪表板内从左到右定位仪表板元素。一个典型的用例可能是在一个现有的垂直容器内并排显示三个单独的图表。当一起使用时,垂直和水平对象可以帮助我们设计从上到下、从左到右对称和平衡的仪表板。
要添加水平对象,请从“对象”选项卡中选择“水平”图标并将其拖动到仪表板上的适当位置。
![图 10.12:选择水平对象]
![图片 B16342_10_12.jpg]
图 10.12:选择水平对象
水平容器与垂直容器使用方式相似,也可以嵌套多次。您可以将垂直容器视为用于布局仪表板的南北流向,而水平容器用于东西布局。大多数复杂的仪表板都将同时使用这两种类型。
文本对象
文本对象主要用于固定的标题和 Tableau 工作簿元数据,如工作簿名称或工作表名称。文本对象还可以使用参数来创建灵活的标题或仪表板内的文本。例如,可以使用日期参数来显示仪表板用户选择的日期范围。
要向仪表板添加“文本”对象,你再次使用“对象”选项卡,这次选择“文本”图标并将其拖动到仪表板内的特定位置。

图 10.13:选择文本对象
当文本容器被拖动到仪表板画布上时,你会看到以下内容(我们在这里添加了一些示例文本):

图 10.14:查看文本窗口
正如你所见,可以通过从文本对象窗口的菜单栏中选择特定的字体、字体大小、样式和对齐方式来完全样式化文本。这些特性使得文本对象比最初看起来更强大,因为你可以使用它们来定制我们的仪表板,添加额外的注释或标题,这些注释或标题不受特定图表或其他仪表板元素的限制。
图像对象
图像对象可以在仪表板中显示几乎所有流行的图像格式。这是一种插入标志、营销材料或其他相关视觉内容的简单方法。可以在仪表板的任何位置插入本地和基于 Web 的图像。
要向仪表板添加图像,转到“对象”选项卡并将“图像”图标拖动到仪表板上的一个位置。

图 10.15:选择图像对象
当图像容器被拖动到仪表板画布上时,你会看到以下内容:

图 10.16:编辑图像对象
你可以通过点击“选择”按钮选择本地图像文件,或者使用 URL 地址向仪表板提供图像。在两种情况下,都可以确保图像在容器内适合并居中,以确保它与仪表板的外观和感觉相匹配。图像可以用于显示公司标志、营销口号或其他相关视觉。
网页对象
网页对象通过输入 URL 地址非常容易地显示网页内容。这可以用于显示与页面指标并排的外部内容,例如产品的着陆页或营销活动的页面。
再次,你导航到“对象”选项卡以选择“网页”选项,然后可以将其拖放到仪表板容器内。

图 10.17:选择网页对象
当网页容器被拖动到仪表板画布上时,你会看到以下内容:

图 10.18:网页对象的 URL 窗口
简单地输入 URL 链接,你的仪表板就会嵌入一个网页。鉴于仪表板上可用的空间有限,应谨慎使用此功能。
空对象
空白对象用于在仪表板内部创建间距,无论是对象之间还是边缘周围。它们对于创建周围有空白的仪表板非常有用,这样各个元素就可以“呼吸”。这通常对仪表板的可读性有积极影响。空白对象还有助于居中图例和帮助对齐图表元素之间的边距。
要添加空白对象,导航到“对象”菜单,并将“空白”图标拖动到仪表板容器中,通常将其放置在图表之间或仪表板的边缘,以改善间距和可读性。

图 10.19:选择空白对象
在许多情况下,空白对象将具有固定的最小宽度或高度,这取决于它们被插入的位置。Tableau 默认为 32 像素,这通常是拖动对象到画布上的正常最小尺寸,这对于在仪表板上提供元素之间的空间来说是一个很好的尺寸。在某些情况下,你可以完全控制它们的宽度或高度,这取决于它们在内部或其他对象之间如何使用。空白对象的使用可能有点棘手,所以请耐心并认识到它们为仪表板外观带来的好处。
导航对象
导航/按钮(Tableau 2020.3 及更早版本)对象是 Tableau 的一个新功能,可用于简化从仪表板到同一工作簿中的另一个工作表或仪表板,甚至到外部资源的导航。可以使用文本或图像,允许使用标志或标语进行自定义体验。请注意,此功能首次在 Tableau 2018.3 中提供;早期版本将不会有“按钮”对象。你可以在“对象”选项卡上找到导航/按钮对象图标;将其拖动到仪表板上的选择位置。

图 10.20:选择按钮对象
当按钮容器被拖动到仪表板画布上时,你最初会看到一个大的箭头,但在选择“编辑按钮”选项后,就会出现以下内容:

图 10.21:编辑按钮对象
这个选项可以通过精心挑选的图像来定制仪表板,还可以显示有用的工具提示来指导仪表板用户。你还可以更改按钮图像,为你的仪表板添加更多设计元素。
扩展对象
扩展对象用于通过为 Tableau 开发的第三方应用程序来增加仪表板的功能。请注意,许多这些扩展将根据用户数量和使用许可证的期限收取额外费用。

图 10.22:选择扩展对象
在这里,你不会详细介绍扩展功能,但它们值得探索,以找到可能对你的仪表板有益的功能。许多扩展将 Tableau 与数据科学功能集成,而其他扩展则扩展了 Tableau 的数据显示选项,启用地理空间集成,或允许自定义脚本。更多信息请在此处查看:help.tableau.com/current/pro/desktop/en-us/dashboard_extensions.htm。
使用浮动对象
在继续之前,我们将简要回顾一下对象浮动选项。在大多数情况下,你将选择默认的平铺选择,但有一些用例中浮动容器是有意义的。以下有两个潜在用例:
-
也许你希望在仪表板上特定位置叠加一些内容。虽然这通常可以通过传统的平铺方法完成,但浮动容器提供了完全的位置灵活性。你可以设置 x 和 y 位置,并指定对象的精确宽度和高度。这对于按钮对象也很有用,因为你可以将它们秘密地放置在未使用的显示空间的小部分中。
-
你还可以使用浮动容器(垂直或水平浮动对象)嵌入图表,用户可以通过参数来控制这些图表。这在你有比仪表板能合理容纳更多的图表的情况下很有用。你可以以平铺格式显示主要图表,然后为显示基于用户选择的单个图表留出一些空间。每个图表都将具有相同的 x-y 坐标和宽度和高度属性,因此它们实际上是堆叠的。然而,根据参数,任何时间只能显示一个。
花一些时间探索浮动选项,即使你可能只会偶尔使用它。它对上述每个用例以及许多其他类似用例都非常有价值。
练习 10.02:KPIs 和指标视图
你是一家咖啡连锁公司的供应链分析师,你需要为想要从市场和国家层面全面了解销售、利润和支出的高级管理人员构建一个高级仪表板,并了解过去两年的趋势。
你现在将创建三个评分卡工作表,每个视图中的每个指标一个折线图,以及一个按州的利润地理视图。你还将添加参数指标交换,这是你在上一章中学到的,并使用筛选仪表板操作根据从地图视图中选定的州来筛选仪表板。
工作表 1-3:总销售额和其他 KPI 工作视图:
-
打开 Tableau 并将
Sample – Coffee Chain数据加载到你的 Tableau 实例中。 -
数据加载完成后,创建一个新的工作表。将
Sales拖动到Text标记卡,如图所示:
![图 10.23:将度量拖动到标记卡]
![img/B16342_10_23.jpg]
图 10.23:将度量拖动到标记卡
- 现在总销售额以文本形式显示,格式化文本以使其看起来更像您正在创建的看板。在
Marks卡片下右键单击SUM(Sales)并点击FORMAT,如图所示:

图 10.24:格式化度量
- 将字体大小更改为 28,文本格式设置为粗体,并使用您选择的颜色。以下截图将显示如果您选择了绿色,这将看起来像什么:

图 10.25:更改字体大小和颜色
- 在谈论
Total Sales美元时,向您的 KPI 添加一个$货币符号。在Marks卡片下右键单击SUM(Sales)并格式化表格,在格式框中点击Currency(Custom)以添加一个 $ 符号,如图所示:

图 10.26:在数字中添加一个 '$' 符号
- 通过双击标题将其从
Sheet 1更新为Total Sales,如图所示:

图 10.27:格式化标题
-
由于您将创建更多类似的工作表,请将工作表重命名为更描述性的名称,例如
Sales KPI或类似名称。 -
复制相同的工作表并按照前面的步骤创建支出 KPI 和利润 KPI 工作表,如图所示:

图 10.28:如何复制工作表
- 利润 KPI 和支出 KPI 工作表应看起来像以下屏幕截图:

图 10.29:其他两个看板工作表
在这个练习中,您创建了由看板驱动的 KPI 设计,并单独格式化 KPI 以反映您正在创建的仪表板的整体格式 (图 10.3)。在下一节中,您将创建几个工作表,包括地图和带有参数的动态度量切换工作表。
练习 10.03:地图和参数工作表视图
在这个练习中,您将继续前面的示例并创建几个更多的工作表,包括地图视图和参数度量选择视图工作表。
工作表 4:地图工作表视图:
-
从上一个练习继续,现在您已经创建了 KPI 视图,创建几个更细粒度的工作表。其中之一将涉及通过州创建地图视图并按总利润着色,而第二个工作表将利用参数来允许最终用户从
Parameter下拉菜单中选择的度量视图。如果之前关闭了工作簿,请打开 Tableau 并加载Sample – Coffee Chain数据集。 -
创建一个新的工作表,双击
State以创建地图。 -
如果以下视图没有自动创建,请选择
Marks下拉菜单并将Automatic切换到Map:
![图 10.30:将地理维度转换为地图
![图片 B16342_10_30.jpg]
图 10.30:将地理维度转换为地图
注意
对于 步骤 4,如果你的默认视图不是美国,那么你可能不是美国人。要将默认国家更改为美国,请转到“菜单”下的“地图”,然后单击“编辑位置”并更改你的国家为“美国”。
- 将“利润”拖到“颜色”标记卡,将“州”拖到“标签”标记卡,如图所示:
![图 10.31:通过 SUM(Profit) 填充地图
![图片 B16342_10_31.jpg]
图 10.31:通过 SUM(Profit) 填充地图
工作表 5:参数度量选择工作表:
在上一章中,你创建了一个类似的参数度量选择工作表。你将在这里创建一个类似的工作表,其中你将给最终用户提供选择要查看的行图/趋势图中的度量指标的能力。
- 通过右键单击数据面板并选择“创建参数”,将其命名为“选择度量”,保持数据类型为“字符串”和“允许值”为“列表”,如图所示:
![图 10.32:创建选择度量参数
![图片 B16342_10_32.jpg]
图 10.32:创建选择度量参数
- 要使用“参数选择”下拉菜单,请使用一个计算字段,并使用
IF ELSE或CASE WHEN语句。在这里,你将使用CASE WHEN计算字段来显示适当的度量,这取决于仪表板用户从你之前创建的[Parameters].[Select Your Metric]参数中选择的参数。现在,通过右键单击数据面板并使用以下公式创建一个计算字段,其中你创建了一个“逻辑 CASE”语句,当选择“销售”作为参数时,将显示SUM(Sales),然后对“利润”和“营销”做同样的处理。
![图 10.33:选择度量计算字段
![图片 B16342_10_33.jpg]
图 10.33:选择度量计算字段
- 现在,使用这些计算字段和参数在你的新工作表中。创建一个新的工作表,将
MONTH(Date)拖到“列”架上,将AGG(Select Your Metric)计算字段拖到“行”架上,如图所示:
![图 10.34:将日期和选择度量计算字段添加到视图中
![图片 B16342_10_34.jpg]
图 10.34:将日期和选择度量计算字段添加到视图中
- 如果你的日期维度是蓝色药丸或离散维度,右键单击维度,从下拉菜单中选择“连续”。
![图 10.35:将日期更改为连续日期
![图片 B16342_10_35.jpg]
图 10.35:将日期更改为连续日期
- 接下来,在表格中显示你的参数。为此,在数据面板中右键单击“选择度量”参数,然后按照以下方式单击“显示参数”:
![图 10.36:显示参数
![图片 B16342_10_36.jpg]
图 10.36:显示参数
- 要使工作表更具描述性,请使用动态标题。双击“标题”,然后在右侧点击“插入”下拉菜单并选择“参数.选择您的指标”或键入确切的文本,如下所示:
![图 10.37:将参数值插入标题以创建动态标题
![图片 B16342_10_37.jpg]
图 10.37:将参数值插入标题以创建动态标题
- 最后,在“标签”下添加“选择您的指标”计算字段。点击“标签”标记卡,并在“行末”下显示“选择您的指标”,如下所示:
![图 10.38:仅在行末显示标签
![图片 B16342_10_38.jpg]
图 10.38:仅在行末显示标签
以下截图显示了您的最终参数指标选择表应看起来像什么:
![图 10.39:根据所选指标进行趋势分析
![图片 B16342_10_39.jpg]
图 10.39:根据所选指标进行趋势分析
- 在您的最终仪表板中,您还有一个“市场”过滤器。将此过滤器添加到此视图,并应用于使用此数据源的所有工作表,如下所示:
![图 10.40:使用此数据源将过滤器应用于所有工作表
![图片 B16342_10_40.jpg]
图 10.40:使用此数据源将过滤器应用于所有工作表
这基本上完成了创建单个工作表的部分。在接下来的练习中,你将开始将这些工作表添加到仪表板视图中,包括向仪表板添加额外的元素,例如与“选择以过滤状态”仪表板动作的交互、下拉菜单以过滤视图,以及添加您自己的品牌元素。
练习 10.04:整合一切:仪表板化
在之前的练习中,您创建了您仪表板所需的全部工作表。现在,您需要将它们全部放在同一个名为“仪表板”的画布上,并相应地进行格式化。
执行以下步骤以完成此练习:
- 通过点击底部的第二个图标或导航到顶部菜单栏中的“仪表板”并选择以下方式创建仪表板:“新建仪表板”:
![图 10.41:创建新的仪表板
![图片 B16342_10_41.jpg]
图 10.41:创建新的仪表板
- 要创建仪表板,首先选择画布/仪表板的大小。建议您拥有至少宽度为 1000 和高度为 800 的画布,因为大多数笔记本电脑和台式机至少是这个尺寸。选择“桌面浏览器 1000X800”作为画布大小,但请随意选择最适合您的笔记本电脑/台式机的大小。
![图 10.42:选择仪表板大小
![图片 B16342_10_42.jpg]
图 10.42:选择仪表板大小
现在点击 平铺 部分,将一个 空白 对象拖动到视图中,并添加细线边框以及外边距 15 以在对象之间创建间距。
首先将一个 垂直 浮动对象拖动到画布上,然后更改 垂直 对象的位置为 X 轴上的 0 和 Y 轴上的 0,并更改宽度和高度以适应画布的大小。此外,添加一个粗边框,以便当您在 垂直 对象上添加平铺 空白 对象时,可以区分这些对象,以及添加浅绿色背景以创建白色和绿色的对比。
- ![图 10.45:为仪表板添加自定义标题![图 10.44:为区分添加填充![图 10.43:格式化垂直对象,包括位置和大小更改图 10.43:格式化垂直对象,包括位置和大小更改垂直和水平对象不是创建仪表板的必需品,尽管它们会使构建更详细的视图变得容易得多。如果您在设计时没有指定垂直和水平选项卡,Tableau 将自动以平铺层次结构排列项目,除非您指定对象为浮动。![图 10.45:为仪表板添加自定义标题 1. ![图 10.44:为区分添加填充图 10.46:添加自定义标志作为品牌元素在大多数情况下,仪表板应使用平铺对象,除非您需要将一个对象添加到另一个对象之上或保持对象的具体位置,这是平铺对象无法实现的。然而,使用平铺对象/画布确实允许您控制许多对象,并且浮动对象会适应您的屏幕大小。图 10.44:为区分添加填充 1. 现在基础已经创建,创建您的 标题和品牌 部分。您的标题分为两个部分:
标题和标志。要创建这两个部分,将一个水平对象拖动到视图顶部,添加边框,将文本对象放置在新创建的水平部分左侧,并将仪表板命名为咖啡连锁店销售分析,如下截图所示:![图 10.46:添加自定义标志作为品牌元素![图 10.46:添加自定义标志作为品牌元素图 10.45:为仪表板添加自定义标题 1. 接下来,要向您的视图中添加标志,请使用图像对象,将其放置在标题对象的右侧,并选择您想要的标志,如下所示:但在您开始将工作表添加到视图中之前,使用一个垂直浮动对象覆盖一个空白平铺对象作为起始点会很有用,因为它使放置对象相对容易,空白对象也为您提供了缓冲区,以便在不移动其他对象或打乱整个仪表板的情况下放置对象。注意![图 10.46:添加自定义标志作为品牌元素 1. 如果您添加的标志太大,可以双击顶部的双横线(见箭头)。选择父布局容器,并从底部调整窗口大小。![图 10.47:双击双线选择父容器![图片 B16342_10_47.jpg]()
图 10.47:双击双线选择父容器
-
现在标题部分已准备就绪,将您的评分卡/KPI 工作表拖动到视图中。但在那之前,您需要为评分卡和图表划分/创建两个部分。将一个“垂直”对象拖动到标题部分下方以创建两个部分供您使用。
备注
您只为描述和可见性添加了红色边框。在最终确定仪表板之前,您将删除边框。

图 10.48:创建评分卡部分
- 首先,将销售 KPI 评分卡拖动到该部分,然后按图所示将利润 KPI 和费用 KPI 评分卡添加到右侧:

图 10.49:将评分卡添加到视图中
- 但是上面的评分卡存在问题;右侧剩余太多空白。为了解决这个问题,通过双击双线选择父容器,点击“选项”下拉菜单,并选择“均匀分布内容”。

图 10.50:如何均匀分布内容
- 如图 10.50所示,每个评分卡中仍然有大量的空白。为了解决这个问题,再次点击单个工作表下拉菜单,并选择“调整”->“整个视图”,如图所示:

图 10.51:将工作表调整到对象的整个视图中
-
最后,为了区分 KPI 工作表,为这个评分卡部分添加一条细边框线,如图所示。
-
对其他两个 KPI 工作表也重复步骤 10、步骤 11和步骤 12,结果应如下。移除父布局容器上的粗红色边框,因为边框的目的已经实现。

图 10.52:标题加上添加到仪表板的评分卡视图
- 接下来,通过从练习 10.03中拖动“地图视图”工作表到仪表板,然后拖动“参数度量选择表”工作表到地图视图的右侧,添加您的“地图”视图以及“趋势分析”视图。结果应如下所示:

图 10.53:添加另一个工作表以及过滤器
- 如果您没有看到任何“利润”颜色图例,也没有看到“选择您的参数”参数和“市场”筛选,以下是向视图中添加它们的方法:
点击“销售按月”工作表的“选项”下拉菜单,并选择“筛选”->“市场”。

图 10.54:手动向仪表板添加过滤器
通过点击“销售按月”工作表的“选项”下拉菜单并选择“参数”->“选择您的指标”来添加参数下拉菜单。

图 10.55:使用教育数据的仪表板示例
您不需要将利润图例作为仪表板的一部分,因此如果它已经是您仪表板的一部分,您可以删除/删除它。
- 如有必要,保持过滤器/参数不变,但将它们移动到更好的位置以便快速可见和更容易访问。
将“选择您的指标”拖到“按月销售”工作表顶部,并根据需要调整参数/工作表的大小。

图 10.56:未添加动作的仪表板
将“市场”过滤器拖到“总费用”工作表右侧,将其放置在右侧。接下来,为“市场”过滤器添加一个细绿色的边框,以匹配该部分其他工作表的格式化。
- 向您的地图添加过滤器动作,以便当您的利益相关者点击地图上的一个州时,仪表板的所有其他元素也会被过滤。导航到菜单栏,点击“仪表板”->“动作”或按 CMD + Shift + D(对于 Mac)或 Ctrl + Shift + D(对于 Windows),如图所示:

图 10.57:向仪表板添加动作
- 通过点击“添加动作”->“过滤器”来添加一个“过滤器”动作。

图 10.58:为仪表板选择过滤器动作
- 选择您的源表,在本例中是“地图”工作表,并在“选择”上运行动作。对于“目标表”,选择所有工作表,并从“清除选择将”选项中选择“显示所有值”,如图所示:

图 10.59:选择过滤器动作配置
- 最后一步是在“目标过滤器”下添加“状态”作为字段。为此,点击“选择字段”->“添加过滤器”,并将“状态”作为过滤维度选择,如图所示,然后点击“确定”。

图 10.60:在源表和目标表中选择字段
这应该是“状态过滤器动作”的最终配置。

图 10.61:最终状态过滤器动作配置
- 测试仪表板的所有交互元素。以下是对“西部市场”的视图,其中“利润”为“选择您的指标”,而“加利福尼亚”为州:

图 10.62:最终的咖啡连锁店销售分析仪表板
这样,您应该已经完成了使用 Tableau 的第一个仪表板。您为您的视图添加了高级交互性,包括交换指标、使用State动作过滤器,并在我们的仪表板中使用了“颜色”、“大小”和“品牌”元素。使用上述视图,您可以推断出加利福尼亚的总销售额为 96,892 美元,其中 31,785 美元是利润。您还可以轻松地从上面的右边的折线图中识别出利润趋势。
创建故事板
故事板与仪表板在几个不同的方面有所不同,但特别是在一个关键方面——仪表板是为了显示关键组织指标(或类似措施)的结果而设计的,而故事板是为了讲述一个预定义的故事。例如,一个商业用户可能会使用仪表板来跟踪一系列关键指标;同样的用户可能会使用故事板来根据在指标中找到的非常具体的信息创建一个故事(例如,展示单个客户在多个时期内的增长情况,而故事板可以帮助将这些时期分割成多个视图)。
要创建一个新的故事,您需要在工作区底部的菜单中点击“新建故事”按钮。选择此按钮将给我们一个空白画布,可以放置一个工作表或仪表板。下一步是将工作表拖放到画布空间;任何相关的过滤器、参数和图例将自动与工作表一起出现。与仪表板一样,您可以调整故事的屏幕大小,并添加文本元素来伴随我们的图表。故事板文本元素被设计为浮在图表之上;它们可以用来为显示的数据添加上下文。
仪表板和故事板之间有一个相似之处,那就是两者都是使用现有的工作表构建的,因此您不需要做很多额外的工作来创建一个新的故事板。您只需要在数据中找到一个故事,规划故事板幻灯片的顺序,并添加一个标题和文本,引导用户通过故事。以下是一个非常简单的例子,其中您使用了单个图表,每个故事标签页都有不同的参数选择:
![图 10.63:一个示例故事板]
![图 B16342_10_63.jpg]
图 10.63:一个示例故事板
故事可以是简单的或复杂的,可以使用单个图表和变化的过滤器,或者使用多个图表、地图和总结工作表来引导用户了解一些有趣的内容。我们将使用下一个练习来构建您上面看到的基本故事板。
练习 10.05:创建简单故事板
您之前已经创建了一个仪表板。现在经理希望在新页面上添加另一个工作表,而不是在您构建的仪表板中添加更多内容。在这个练习中,您将根据销售和利润创建一个州级树状图,并使用仪表板以及新的树状图工作表来讲述故事:
-
再次打开之前创建的仪表板。
-
创建一个新的工作表,并将
州拖动到标记卡下的详细部分。如果经纬度已经被添加到列架,请从架子上移除它们。 -
将
利润添加到大小,将销售添加到颜色,如图所示:

图 10.64:使用销售和利润的树状图
- 向报告中添加更多视觉提示,包括标签上的
状态和利润,并将标题更新为按州销售/利润。

图 10.65:向树状图中添加标签
-
您有一个仪表板和一个工作表用于您的故事板。点击底部工具栏上的
新建故事图标。将其重命名为按州咖啡销售以更新故事标题。 -
将
咖啡销售分析仪表板(或您之前创建的“仪表板名称”)拖动到故事板画布上。您应该看到这个:

图 10.66:向故事点添加仪表板
- 故事板与仪表板的主要区别在于,故事板可以在一个视图中包含多个仪表板以及报告,并且您可以添加标题以逐步了解仪表板故事的内容。
添加标题选项允许您向仪表板添加有趣的见解或故事点。点击添加标题并写下按市场查看总咖啡销售、利润和费用,这也允许您分别查看每个指标的走势,并隐藏故事标题。

图 10.67:向故事点添加自定义标题
- 通过点击
故事部分中的空白故事点向视图中添加另一个故事点。![图 10.68:向视图中添加新的故事点]()
图 10.68:向视图中添加新的故事点
- 将
按州销售利润(或你在练习中之前创建的第二个仪表板)拖动到新的故事点,并将标题更新为按州和市场的利润和销售树状图,具有按市场过滤的能力。

图 10.69:带有自定义标题的第二个故事点的最终故事板
您现在已经完成了一个非常简单的故事板,应该能够看到更高级故事的可能性。正如您在基本示例中所看到的,故事板可以非常有效地引导用户通过一个专注的叙述。
让我们通过应用所学知识来构建一个完整的仪表板来结束这一章。
活动 10.01:构建完整的仪表板
在这个活动中,您是欧盟的一名分析师,希望构建一个仪表板,展示 2014 年与 2015 年所有欧洲机场的乘客增长情况,并允许利益相关者与数据互动。
你将创建多个评分卡和品牌元素,并将一个Top N 欧洲机场参数视图添加到你的仪表板中。最终输出应如下所示:
注意
你可以在此链接找到此活动的数据集:packt.link/vyWvi。

图 10.70:使用欧洲机场数据预期的最终输出
以下步骤将帮助你完成此活动:
-
打开一个新的 Tableau 实例,并将欧洲机场 2015 数据加载到视图中。
-
创建三个评分卡/关键绩效指标(KPI)度量:
总 2014 乘客、总 2015 乘客和乘客增长/下降。 -
对于
总 2014 乘客,在文本标记卡片上放置2014 乘客,并格式化文本以及标题,如输出所示。对总 2015 乘客也做同样操作。 -
对于
乘客增长/下降评分卡,使用以下公式创建一个新的计算字段:

图 10.71:乘客增长/下降计算字段
-
使用
乘客增长/下降字段,创建一个与为2014 乘客创建的类似的评分卡。 -
创建一个新的工作表,并将工作表重命名为
2014 年 Top N 机场。 -
创建一个
Top N 参数,将参数命名为Top N,选择整数作为数据类型,当前值为10,然后点击确定。 -
将
机场名称添加到行中,将2014 乘客和2015 乘客添加到列架上,将两个轴转换为双轴,然后同步轴。 -
在
标记卡片下,将一个轴更改为圆形标记类型,以创建你想要的输出子弹图表视图。 -
要将
Top N参数添加到视图中,将机场名称拖到过滤器中。点击顶部,通过字段过滤字段。然后从下拉菜单中选择参数,并在点击确定之前将2014 乘客作为字段添加。

图 10.72:添加 Top N 过滤器
-
在数据面板中右键单击
Top N参数,然后点击显示参数。 -
在双轴上添加一些描述性元素,将
乘客增长/下降和国家拖到工具提示中,并确认2014 乘客(2015 乘客)是否已经包含在工具提示中。如果没有,将它们也拖到工具提示标记卡片中。 -
创建一个新的仪表板,并拖动一个
垂直拼贴对象。从顶部的品牌开始,一直到底部。 -
标题:拖动一个
水平拼贴对象,拖动文本,然后将你的仪表板命名为欧洲机场增长。 -
接下来,在网上下载一架手飞机或航空公司标志,并使用
图像拼贴对象将其拖到仪表板标题的右侧。 -
在标题下方添加另一个
垂直拼贴对象,并将所有三个评分卡拖动到其中。 -
接下来,拖动另一个
Vertical面板对象到计分卡下方,并将2014 年前 N 名机场工作表放入该部分。 -
根据你的要求对图例和参数进行对齐/重新对齐。
-
你的最终输出应该看起来像这样:

图 10.73:活动 10.01 的最终输出
注意
该活动的解决方案可以在以下链接找到:packt.link/CTCxk。
摘要
本章涵盖了仪表板和故事板的设计和开发,这两个是 Tableau 设计师和用户必备的工具。仪表板仍然是 Tableau 体验的关键组成部分,成千上万的公司和组织使用它们来向高管、经理和分析师传达洞察。
在你决定创建第一个仪表板之前,你回顾了创建仪表板的最佳实践,以及大小、颜色和位置在仪表板开发中的重要作用,以及仪表板的可读性方面。随后,你逐一了解了仪表板元素/对象,并在开始创建仪表板之前提供了这些对象如何工作的示例。
在我们的第一个 咖啡连锁店销售分析 仪表板中,你使用了之前学到的概念来创建 选择你的指标 参数,学习了如何将仪表板划分为部分,看到了一些关于最佳放置对象的技巧和窍门,并考虑了何时使用面板式对象与浮动对象。你还格式化了你的仪表板,并将自定义品牌元素添加到仪表板中。随后,你了解了故事板的创建以及它与仪表板的区别,以及何时使用故事板而不是仪表板。最后,通过使用 欧洲机场 数据创建另一个独特的仪表板,并再次使用了你在整本书中学到的某些高级概念,包括双轴棒棒糖图、使用参数的 Top N 过滤器,以及使用最佳实践格式化仪表板。
在这里获得的知识将使你能够在下一章中创建仪表板和故事板。仪表板和故事板最大化了每个数据集的影响。将 Tableau 计算能力、过滤器、参数、集合、分组和动作集成到单个仪表板中是提高你的 Tableau 技能并为你的客户提供必要解决方案的重要一步。
第十一章:11. Tableau 交互性:第一部分
概述
本章将深入探讨 Tableau 中的操作顺序、过滤器、集合和参数。我们还将通过练习来使用视图中的组和层次结构。Tableau 的某些功能使最终用户能够控制视图。最后,我们将讨论一个活动,该活动将利用世界指标数据集中的上下文过滤器、参数和集合来巩固你在本章中学到的技能。到本章结束时,你将掌握创建交互式报告的技能,这些报告使最终用户能够更好地控制报告中的数据切片和切块。
简介
在本章中,你将探索在 Tableau 中创建报告/仪表板的各种选项,这使你能够以更易于理解的方式安排你的数据或报告,以便你的利益相关者/观众。前几章主要关注创建计算字段、表计算以及高级计算,如详细程度计算。这些类型的计算可以帮助你实现预期的结果/视图。然而,你还可以探索其他安排、排序或分组数据的方法,为你的报告添加另一层交互性,从而有助于提高报告的易用性。本章将从概念和实践的角度深入探讨 Tableau 中的操作顺序、过滤器、集合和参数,并讨论如何在你的报告/仪表板中充分利用这些功能。在本章中,你将回顾如何分组数据和使用层次结构用例,并考虑参数的一个有趣用例。
数据分组
数据分组在你想简化或堆叠多个维度行/成员到一个更大的桶时很有用。例如,假设你正在制作关于世界国家人口的报告,标准数据中不包含所有南亚国家的自定义分组。当你决定通过将印度、巴基斯坦、尼泊尔、斯里兰卡等国家进行分组来创建所有南亚国家的自定义分组时,你将注意到在你的数据面板中添加了一个新的维度:
![图 11.1:Sample - Superstore 数据集中的子类别组]
![img/B16342_11_01.jpg]
图 11.1:Sample - Superstore 数据集中的子类别组
与 Tableau 功能通常一样,你可以用多种方式实现相同的结果。你可以使用以下任一方法来创建一个组:
-
从工作表视图中创建一个组。
-
从
数据面板中创建一个组。
你将在下面的练习中练习这两种选项。
练习 11.01:创建组
你是 XYZ 集团的一名零售分析师,负责将多个子类别分组,以便子类别经理更容易报告他们的销售 KPI:
-
在你的 Tableau 实例中打开
Sample - Superstore数据集。 -
创建一个条形图,显示“销售”在“类别”和“子类别”之间的分布,如图所示:

图 11.2:按子类别查看销售
从工作表视图创建分组:
- 按下Ctrl键并选择或按下Command键。在视图中选择子类别以选择多个“子类别”成员。然后,右键单击以分组它们或点击工具栏或在此处显示的工具提示中的分组图标:

图 11.3:添加分组
- 如您所见,已创建一个新的“标签、纸张、存储和用品”子类别分组。您也可以通过右键单击并更改别名来重命名子类别分组,使其更具描述性,例如如果您希望将其命名为办公文具。

图 11.4:命名分组
从数据面板创建分组:
在前面的步骤中,您使用了工作表视图来创建分组。现在您将通过“数据”面板创建一个单独的分组:
-
按照上述步骤创建一个新的工作表。
-
创建一个条形图,显示“销售”在“类别”和“子类别”之间的分布,如图所示:

图 11.5:从数据面板添加分组
- 在“数据”面板中右键单击“子类别”维度,并将鼠标悬停在“创建”上。如图所示,从子菜单中点击“分组...”:

图 11.6:从数据面板创建分组
-
在分组弹出窗口中,将字段名称更改为更具描述性的名称:“纸张子类别(分组)”。
-
按住Ctrl或Command键并多选您想要分组的子类别。在这种情况下,将所有与纸张相关的项目放在一个组中,然后点击“分组”按钮:

图 11.7:向“纸张子类别”组添加成员
- 将窗口中选定的项目重命名为“纸张项目”,以便更容易阅读,如图所示。您可以根据需要通过将项目拖入或拖出组来添加或删除项目。

图 11.8:编辑分组
- 要检查您的分组是否按预期工作,将新创建的组维度“纸张子类别(分组)”拖到“行”架上,并从视图中删除“类别”以及“子类别”维度。您将注意到您在上一步骤中创建的组:

图 11.9 子类别分组
在这个练习中,您探索了创建分组的两种方法:通过工作表视图和“数据”面板。完成此任务后,子类别经理现在有了一种查看多个分组子类别 KPI 的方法。
注意
如果您现在或将来想要编辑分组,请在“数据”面板中右键单击新创建的分组维度(带有 clip 图标的维度)并点击“编辑分组”。在“编辑分组”弹出窗口中,您可以通过拖放来删除成员或向组中添加新成员。
层次结构
层次结构并不仅限于 Tableau。因此,您很可能之前已经使用过它们,无论是自觉还是不自觉。在数据环境中,当相关数据根据其详细程度逻辑排列时,它被称为“样本 - 超级商店”数据集,您已经多次使用过层次结构,包括包含“国家/地区”、“州”、“城市”和“邮政编码”的“位置”层次结构;产品层次结构由“类别”、“子类别”、“制造商”和“产品名称”组成。层次结构使您能够全面了解您的数据。例如,如果您将“州”维度添加到您的视图中,由于您数据中预先创建的层次结构,您可以通过点击您的架上的+图标从州切换到城市,或者通过点击此处所示的-符号向上提升一个级别:

图 11.10:默认层次结构
通过以下简短练习看看层次结构是如何创建的。
练习 11.02:创建层次结构
作为 emzon.com 的电子商务分析师,产品目录经理希望将“段”添加到“产品”层次结构中。您将首先需要移除原始的“产品”层次结构,然后通过组合现有的一个来创建新的“产品”层次结构。
注意
如果您在 Tableau Desktop 中加载 Tableau 提供的默认“样本 - 超级商店”数据集,您可能会注意到一些字段缺失或添加了新字段。这是预期的,因为 Tableau 会根据需求不断更新数据文件。如果您想避免混淆,请从本章的官方 GitHub 仓库下载数据集,链接如下:packt.link/eLmSX。
-
在您的 Tableau 实例中打开“样本 - 超级商店”数据集,如果它尚未打开。
-
只有当您的数据版本中内置了“产品”层次结构时,才遵循以下 步骤 2 和 步骤 3。如果没有,请直接进入步骤 4。假设在您的“数据”面板中您找到一个(如图所示)附加到“产品”维度的“决策树”图标,决策树表示该维度是层次结构,可以在您的视图中进行下钻。

图 11.11:层次结构图标
- 在您的“维度”数据面板中导航到“产品”维度,然后右键单击“产品”维度。然后点击“移除层次结构”:

图 11.12:移除层次结构
一旦删除层次结构,决策树 图标也会被删除,并且层次结构中曾是部分的维度随后成为它们自己的维度。你也将无法向下钻取,因为它们不再是逻辑上排列的。
-
要重新构建我们刚刚删除的层次结构,请按住 Ctrl 并选择(对于 Windows)或 Command 并选择(对于 Mac)所有曾是产品层次结构一部分的维度。在这种情况下,这将包括
类别、子类别、制造商、产品名称和细分市场。 -
选择所有提到的维度后,右键单击所选维度中的任何一个,将鼠标悬停在
层次结构上,点击创建层次结构…,并按此处所示命名层次结构为产品:

图 11.13:创建新的层次结构
理想情况下,上一步骤中多选的顺序应该允许 Tableau 选择你的层次结构的层级。不幸的是,Tableau 按字母顺序对它们进行分级,这不是你想要的层级:

图 11.14:新创建的层次结构
- 在创建层次结构之前,你应该对层次结构的逻辑层级有一个很好的了解。在这种情况下,这些是
类别|子类别|制造商|产品名称|细分市场。根据层级拖动你的维度到上方或下方。例如,子类别位于细分市场之下,所以将子类别拖动到产品名称和制造商之上:

图 11.15:拖动维度以更改其逻辑顺序
- 检查层次结构是否按预期工作。将
产品层次结构拖到行档中,并双击销售以通过产品层次结构创建销售报告。

图 11.16:最终层次结构
与组一样,当你可以根据数据点的详细程度或粒度逻辑地排列相关数据点时,层次结构非常有用。在这个练习中,你不仅删除了,还重新创建了一个 产品 层次结构。
过滤器:Tableau 的灵魂和核心
如果你想要与普通的 Tableau 开发者区分开来,理解操作顺序以及 Tableau 处理和过滤数据的方式至关重要。换句话说,要成为 Tableau 的真正专家,你需要能够确定数据何时何地被过滤,并在视图没有产生你预期的数据时找出原因。
将操作顺序视为查询管道。Tableau 过滤数据的方式至关重要,Tableau 遵循顺序,如下面的图表所示。

图 11.17:Tableau 操作表
当你在 Tableau 中创建业务仪表板时,你将需要处理多个过滤器、表格计算和计算字段。与大多数程序一样,执行遵循一定的顺序/操作优先级。操作顺序就是如此。在上面的图表中,提取过滤器具有最高优先级,其次是数据源过滤器和上下文过滤器,而趋势线、参考线具有最低优先级。在接下来的子节中,我们将通过练习尝试解释大多数过滤器,以展示其重要性。
数据源和提取过滤器
数据源和提取过滤器在 Tableau 的操作顺序中排在第一位,在创建第一个视图或加载数据到 Tableau 实例之前进行。这种过滤在你不希望将服务器/源文件中的所有数据加载到 Tableau 实例时非常有用。以下练习中将展示其实际应用。
练习 11.03:使用提取/数据源过滤器过滤数据
作为分析师,你希望只将数据子区域加载到你的 Tableau 工作表中,以降低仪表板的负载并限制下载到工作表中的数据量。只为东部地区创建一个按州划分的销售视图。
-
如果你还没有打开,请打开你的 Tableau 实例中的
Sample - Superstore数据集。 -
在屏幕左下角双击
数据源以创建一个示例视图。

图 11.18:数据面板视图
- 要仅为你视图中的
东部地区导入数据,请在此处将其添加为数据源过滤器。在数据源页面上,点击视图右上角的过滤器部分中的添加。

图 11.19:数据源视图
- 在
编辑数据源过滤器窗口中,点击添加…按钮,选择区域,然后点击确定。只需从列表中选择东部并点击确定按钮。再次点击确定按钮以关闭对话框:

图 11.20:添加数据源过滤器
- 为了确认过滤器的功能,创建一个新的工作表并审查你的数据中的
州的销售:

图 11.21:添加数据源过滤器后的数据
由于数据不是千兆或兆字节规模,你可能不会注意到在加载数据视图中的任何维度时的速度差异。如果你正在处理大规模数据,利用数据源过滤是提高工作效率的一种方法。
当你导入的数据源包含比你报告/仪表板所需更多的数据时,你可以利用数据源过滤器来提高效率并减少对 Tableau 视图的负载。在这个练习中,你的目标是提高仪表板的性能,通过使用数据源过滤器,你能够限制工作表中加载的数据量。
使用视图的过滤器
这些类型的过滤器类似于你使用视图分组维度的方式。在这种过滤方式中,你手动选择视图中的一个或多个数据点以包含或排除。在接下来的练习中,你将执行以下简单步骤来以这种方式创建过滤器。
练习 11.04:从视图中创建过滤器
作为一名分析师,你已经获得了全新的数据,作为仪表板设计过程的一部分,你想要进行一些探索性数据分析(EDA)。使用视图创建过滤器可以是一种很好的过滤数据的方式,因为你可以在工作表中看到数据。
执行以下步骤来完成此练习:
-
如果您还没有这样做,请在您的 Tableau 实例中打开
Sample - Superstore数据集。 -
创建一个按
State划分的Sales条形图。将State拖放到行架中,将Sales拖放到列架中。你应该得到以下视图:
![图 11.22:按州划分的销售视图
![img/B16342_11_22.jpg]
图 11.22:按州划分的销售视图
- 手动选择你想要包含/排除的州/数据点。点击并拖动一个区域,如这里所示排除销售量前五的州:
![图 11.23:拖动多个数据点创建过滤器
![img/B16342_11_23.jpg]
图 11.23:拖动多个数据点创建过滤器
- 如果你将鼠标悬停在所选区域上几秒钟,会出现一个工具提示选项。从这里,选择
仅保留或排除所选州。你将排除这些州,因此点击排除:
![图 11.24:从视图中包含/排除数据点
![img/B16342_11_24.jpg]
图 11.24:从视图中包含/排除数据点
将State维度的过滤器添加到过滤器架中。在下一小节中,你将深入了解如何最好地使用过滤器架,所以现在请暂时保留你的问题。以下是最终输出:
![图 11.25:从视图中创建过滤器后的最终输出
![img/B16342_11_25.jpg]
图 11.25:从视图中创建过滤器后的最终输出
在这个练习中,你练习了手动选择或拖动选择视图的一个子集以包含/排除。使用视图创建过滤器在最初进行 EDA 时非常有帮助,这是所有分析师在创建新仪表板时开始的地方。接下来,我们将深入了解如何最好地利用过滤器架。
使用过滤器架创建过滤器
在前面的章节中,我们探讨了在数据源级别或使用视图进行数据过滤的方法,但正确利用 Tableau 中的过滤器是通过过滤器架来实现的。在本节中,我们将讨论如何使用过滤器架来过滤维度、度量以及日期。但首先,我们将深入了解当您拖动任何提到的数据类型时打开的过滤器对话框的选项。
使用过滤器架进行维度过滤
Tableau 中的维度本质上属于分类数据。当过滤维度时,您要么将数据的一部分包含在视图中,要么排除。以下对话框在您将维度拖到过滤器架时打开:

图 11.26:将维度拖到过滤器架
该框有四个选项卡,如下所示:
- 在“供应”和“表格”上的
子类别,你可以手动选择仅包含两个子类别,如下所示:


图 11.28:过滤器架通配符选项卡
- 在
条件选项卡中,您定义用于过滤数据的规则或标准。例如,您还可以使用条件选项卡来过滤那些在您的数据中报告亏损的子类别。为此,选择按字段,然后在下拉菜单中选择利润,聚合为Sum,如下所示:

图 11.29:过滤器架条件选项卡
- 当您想要根据要过滤视图的度量计算
Top或BottomN 个成员时,请使用过滤器框中的Top选项卡。在本例中,您知道Bottom三个子类别是亏损的行,因此您可以使用这些详细信息创建一个Bottom过滤器,如下所示:


图 11.31:按子类别计算利润视图
注意,有三个子类别(供应品、书架和桌子)在超市亏损。您希望将它们包含在您的视图中,并排除所有其他子类别。您显然可以从视图中手动选择子类别,但请按照下一步的说明使用过滤器架。
- 将
子类别从数据面板拖放到过滤器架,将打开一个过滤器[子类别]对话框。

图 11.32:仅显示盈利子类别
-
在对话框中,点击
条件选项卡,选择按字段,并过滤所有[利润] <0的子类别。您将得到所有亏损子类别的列表。点击确定以过滤数据。 -
您应该得到以下视图,显示所有亏损子类别的列表:

图 11.33:仅显示亏损子类别
在您作为数据分析师的职业生涯中,您可能会发现自己每天都会使用过滤器架作为您工作的一部分,这使得掌握这项技能变得至关重要。在这个练习中,您探索了 Tableau 在过滤器架中为维度提供的所有选项。
使用过滤器架进行测量过滤器
度量是定量数据,这意味着,与维度不同,对度量的过滤涉及选择您想要包含/排除在视图中的数值范围。每次您将度量拖放到过滤器架时,过滤器对话框都会为您提供四个选项来过滤度量。以下列表将更详细地定义这些选项:
- 测量过滤器对话框:

图 11.34:过滤器窗口中的值范围
-
值范围,您指定要过滤的值范围。在这种情况下,您只想显示盈利子类别,因此您的范围将从零到最大值,如下一张截图(图 11.35)所示。 -
至少,您指定最小值,所有大于或等于最小值的值都将包含在您的视图中。这通常在您无法控制列/数据的最大值时使用,并且难以预测。在这种情况下,您的最小值将是零,因为您只想显示此处所示的盈利子类别:

图 11.35:至少过滤器窗口
-
“最多”是“至少”的反义词,当您想包含所有小于或等于最大指定值的值时使用。这通常在您无法控制最小值但知道要包含在视图中的最大值时使用,这与“至少”选项卡正好相反。您不能使用“最多”来识别盈利的子类别,因为所有负值也会包含在视图中,如果您使用“最多”,您将无法控制它们。
-
特别说明:正如其名所示,此筛选器仅在您想包含空值、非值或所有值时使用。此选项卡很少使用,但根据数据,可能需要使用。
练习 11.06:使用筛选面板测量筛选
投资组合经理喜欢您创建的亏损子类别视图。现在他希望您创建一个类似的视图,但这次不是亏损子类别,而是希望创建一个盈利视图。您将在以下步骤中利用“利润”作为筛选器来创建视图:
-
如果您还没有这样做,请在您的 Tableau 实例中打开
Sample - Superstore数据集。 -
创建一个按“子类别”的“利润”条形图,并将“子类别”拖放到“行”面板,将“利润”拖放到“列”。您应该看到以下视图:

图 11.36:按子类别查看利润
- 将“利润”从“数据”面板拖放到“筛选”面板。以下对话框将打开:

图 11.37:度量值筛选字段选项
-
在“筛选字段[利润]”对话框中,选择您的度量的聚合方式。在这种情况下,选择“求和”,因为您想查看利润的总和。
-
“值范围”以及“至少”都可以用于识别盈利的子类别。对于这个练习,请使用“值范围”来过滤盈利的子类别。

图 11.38:度量值的范围
- 无论您决定使用哪个“利润”选项,您的最终输出应该类似于以下内容:

图 11.39:度量值筛选最终输出
在这个练习中,您第一次使用“度量”数据类型作为筛选器,并详细探讨了 Tableau 的相应选项。您使用“利润”来筛选仅盈利的子类别。
在下一节中,您将探索使用“筛选”面板进行日期筛选。
使用筛选面板进行日期筛选
日期既不是定性数据也不是定量数据。我们可以通过“相对日期”、“日期范围”或离散日期进行日期筛选。让我们探索每个选项以及它们之间的区别,并在解释后的练习中,我们将通过一个具体用例进行操作。
当您将“订单日期”等日期维度拖动到您的Sample - Superstore数据集中时,您将看到以下窗口:
![图 11.40:日期筛选模态窗口
![图片 B16342_11_40.jpg]
图 11.40:日期筛选模态窗口
- 在“相对日期”对话框中,选择“月份”,点击“最后”,并输入
12个月,如图所示:
![图 11.41:相对日期筛选
![图片 B16342_11_41.jpg]
图 11.41:相对日期筛选
相对日期从视图打开的日期开始定义。如果数据源只有到 2019 年 12 月的日期,而你是在 2020 年 7 月打开的,那么视图将只包括从 2019 年 8 月到数据中存在的最大日期,在这个例子中是 2019 年 12 月。因此,你将只能看到五个月的数据。要更改这一点,你可以检查左下角的“相对于”并输入日期为 2019 年 12 月 31 日,如图所示。
![图 11.42:带有锚定日期的相对日期筛选
![图片 B16342_11_42.jpg]
图 11.42:带有锚定日期的相对日期筛选
- 按日期范围筛选:当您想要日期具有固定范围时,您使用此筛选器。在这个用例中,您想要相对于 2019 年 12 月的 12 个月数据,因此您的范围将是 2019 年 1 月到 2019 年 12 月,如图所示:
![图 11.43:按日期范围筛选
![图片 B16342_11_43.jpg]
图 11.43:按日期范围筛选
- 在“筛选字段[订单日期]”对话框中,如果您选择离散日期值,您将筛选整个日期级别。例如,如果您在“月份”上筛选离散日期并选择“一月”,您将筛选“一月”,无论年份如何。如果您想按月份和年份筛选,请从“筛选字段”对话框中选择“月份/年份”。
![图 11.44:按离散日期筛选
![图片 B16342_11_44.jpg]
图 11.44:按离散日期筛选
![图 11.45:按离散月份筛选
![图片 B16342_11_45.jpg]
图 11.45:按离散月份筛选
在以下练习中,您将使用“日期”对话框并创建一个时间序列视图来展示“日期”筛选器的使用。
练习 11.07:使用筛选器面板创建日期筛选器
您被要求创建一个相对于数据最后更新日期的最后 12 个月销售额的时间序列视图。您将再次使用Sample - Superstore数据集,并利用相对日期,以及在本节中介绍的对齐选项。
执行以下步骤来完成此练习:
-
如果尚未完成,请在您的 Tableau 实例中打开
Sample - Superstore数据集。 -
创建一个显示“销售额”随连续“订单日期”月份变化的折线图,如图所示:
![图 11.46:筛选最后 12 个月后的时间序列视图
![图片 B16342_11_46.jpg]
图 11.46:筛选最后 12 个月后的时间序列视图
您希望折线图只显示最后 12 个月的数据,因此您将使用“过滤器”面板来选择仅显示最后 12 个月的数据。
- 将“订单日期”拖放到“过滤器”面板中。在“过滤器字段[订单日期]”对话框中,通过“相对日期”、“日期范围”或离散日期过滤来过滤日期。

图 11.47:日期过滤器窗口
- 对于这个练习,您将通过“相对日期”进行过滤,因为您希望您的视图在未来也能动态更新,只显示最后 12 个月的数据。在先前的对话框中单击“相对日期”,在下一屏幕中选择“月份”并输入
12。

图 11.48:相对日期日期过滤器
这在上面的“注释”部分中已经讨论过。由于“样本 - 超级商店”数据集只有到 2019 年 12 月的数据,并且考虑到这本书是在 2020 年 7 月编写的,您将只看到六个勾选标记。
- 要更改这一点,请使用“锚定相对到”并输入日期为 2019 年 12 月 31 日,如图所示:

图 11.49:带有锚定日期的相对日期
您通过使用“相对日期”和“锚定相对”到 2019 年 12 月实现了显示数据最后日期的 12 个月趋势的目标。以下是最终输出应该看起来像什么(在“标记”面板中添加了“(订单日期)”标签以提高可读性):

图 11.50:显示相对于锚定日期的最后 12 个月的时间序列
在本节中,您详细了解了可用的日期过滤器选项以及如何最好地使用它们,以及如何最好地使用“锚定相对到”以及何时使用它。
在下一节中,我们将探讨如何让您的报告/仪表板的最终用户能够根据他们的需求过滤报告。
快速过滤器
到目前为止,您一直作为开发者使用过滤器,而没有给最终用户提供在视图中过滤的能力。Tableau 被开发者和最终用户社区所喜爱的许多原因之一是它允许最终用户控制视图中的数据流。这减少了与开发者的来回沟通,因为最终用户可以使用过滤器来更改数据并获得他们想要的见解。这种类型的最终用户过滤器控制是通过快速过滤器实现的。
显示快速过滤器有多种方式。它们之间的主要区别如下:

图 11.51:快速过滤器类型
每个快速过滤器都有特定的用途,并且在几乎每个你将构建的仪表板中都得到广泛应用。在接下来的练习中,你将探索一个具体的例子,并回顾添加快速过滤器到你的视图的确切步骤。
练习 11.8:创建快速过滤器
创建一个简单的销售按州视图,并使用区域作为快速过滤器,因为区域经理将使用仪表板来过滤他们特定的仪表板。再次使用Sample - Superstore数据集来完成此练习。
执行以下步骤:
- 如果你的 Tableau 实例中尚未打开,请打开
Sample - Superstore数据集。
你将创建一个销售按州的交叉表,并使用区域作为快速过滤器,但首先你需要构建视图。
- 将
State拖放到Rows架,然后双击Sales以创建销售按州的表格。我们现在将通过选择所有值将Region添加到Filters架中的过滤器:

图 11.52:按州销售视图
- 点击下拉箭头或简单地右键单击
Filters架上的区域维度,然后选择显示过滤器:

图 11.53:显示过滤器步骤
- 将
Region快速过滤器从右侧拖放到左侧,位于Marks架下方,以便于使用。Tableau 自动创建了一个Multiple Values (list)作为快速过滤器。如果你悬停在Region快速过滤器上的箭头上并单击,如图所示,你会得到以下选项:

图 11.54:快速过滤器类型选项
- 作为对 Tableau 中所有快速过滤器类型的回顾,请查看以下内容:

图 11.55:快速过滤器类型(回顾)
- 在这个用例中,你希望你的最终用户能够控制他们想要查看的区域,以便他们能够一次性查看一个或所有区域。为此,选择
单个值(列表),将快速过滤器类型从多个值(列表)更改为单个值(列表),并保持自定义选项中的显示“所有”值复选框选中,如图所示:

图 11.56:快速过滤器自定义选项
- 在我们的快速过滤器中,将
区域设置为East,最终输出应类似于以下视图:

图 11.57:添加快速过滤器后的最终输出
快速过滤器是 Tableau 成为如此强大工具的原因,即使对于最终用户也是如此。在本节中,你学习了快速过滤器类型之间的主要区别以及它们最佳的使用案例。然后你创建了按州的销售,并使用区域作为快速过滤器。
在多个工作表/多个数据源或整个数据源上应用过滤器
当您向视图中添加过滤器时,它仅适用于您当前视图。但有时您可能想要在多个选定的、使用相同或相关数据源(如果存在主次数据源之间的关系)的工作表中应用相同的过滤器。本节将探讨每个选项之间的差异以及何时使用它们。
![图 11.58:应用到工作表选项]
![图片 B16342_11_58.jpg]
![图 11.58:应用到工作表选项]
-
将过滤器应用于“仅此工作表”:在此,添加到工作表的过滤器仅应用于添加过滤器的那个工作表。
-
将过滤器应用于“所选工作表...”:如果您想要在多个工作表或所有工作表中应用过滤器,此选项非常有用。在上一个部分中,您创建了“区域”过滤器。假设您想在属于 Tableau 工作簿的其他几个工作表中使用相同的过滤器。您可以按照以下方式操作:
![图 11.59:应用到所选工作表的过滤器]
![图片 B16342_11_59.jpg]
![图 11.59:应用到所选工作表的过滤器]
-
将过滤器应用于“所有使用此数据源”:如果您想使用“区域”维度过滤所有使用相同“样本 - 超市”数据集的工作表,请使用此选项。如果工作簿只包含一个数据源,您也可以通过在“所选工作表”选项中选择所有工作表来实现相同的结果。
-
将过滤器应用于“所有使用相关数据源”:当您想要在多个数据源中使用当前工作表中的过滤器时,请选择此选项。此功能于 2016 年发布,当 Tableau 宣布此功能发布时,公司提到这是有史以来最受欢迎的功能之一。
此选项仅在您在当前或主数据源与次级数据源之间创建关系时才有效。您可以通过在菜单栏中导航到“数据”,然后点击“编辑关系”来完成此操作。如果 Tableau 没有自动在数据源之间创建一些关系,您可以根据用例创建自定义关系。
当数据源中公共列的名称不匹配时,“自定义关系”非常有用。一旦您能够创建关系,您就可以选择“所有使用相关数据源”以使其魔法生效。当您进行数据混合时,这非常有用,这在之前的章节中已有讨论。
上下文过滤器
当您在 Tableau 视图中添加多个过滤器时,每个过滤器都是独立于其他过滤器进行计算的。因此,如果您在视图中有两个快速过滤器,如“类别”和“子类别”,当您选择/取消选择过滤器时,Tableau 会使用所有数据来显示视图。
如果你想要限制整个数据源的计算并提高报告/仪表板的性能(更多内容将在接下来的练习中介绍),你将想要使用上下文过滤器。这些过滤器有助于 Tableau 理解数据的上下文,并限制每次你在视图中更改过滤器时发生的数据过滤/加载量。
在 Tableau 的操作顺序中,“上下文过滤器”具有第三优先级。因此,当你设置一个过滤器为上下文过滤器时,你实际上是在创建一个独立的过滤器,而所有其他不是上下文过滤器的过滤器都成为依赖过滤器。这是因为其他快速过滤器只会处理首先通过上下文过滤器过滤的数据。

图 11.60:Tableau 操作顺序
实际中的例子将在下面详细说明。
练习 11.09:创建和使用上下文过滤器
在这个练习中,你将创建并使用上下文过滤器,通过使用“样本 - 超市”数据集的示例用例来了解为什么掌握 Tableau 的操作顺序如此有益。
-
如果你还没有打开,请打开你的 Tableau 实例中的“样本 - 超市”数据集。
-
创建一个按“子类别”排序的“销售额”条形图视图,按“销售额”降序排序,并将“类别”添加到“过滤器”架中,以快速过滤的形式显示。你应该有如下视图:

图 11.61:按子类别查看销售额
- 要仅显示按销售额排名前五的子类别,请将子类别添加到“过滤器”架中,并使用“顶部”选项卡,通过“销售额”的“总和”来过滤前五个子类别,如图所示:
![图 11.62:Top N 过滤器视图]()
图 11.62:Top N 过滤器视图
- 注意,视图中显示的所有前五个子类别。然而,如果你开始取消选择一些“类别”快速过滤器,你会注意到只有一些前五个子类别仍然在视图中。

图 11.63:上下文过滤器的必要性
这种情况发生的原因(如你可以在以下图中看到)是,在 Tableau 的操作中,首先对前 N 进行过滤,然后再将维度过滤应用于视图。因此,当你使用前 N 过滤器时,Tableau 已经计算了视图中的维度的前 N;当你使用次级维度进行过滤时,它是在前 N 数据上过滤,而不是整个数据集。

图 11.64:Tableau 操作顺序的分区视图
-
使用上下文过滤器来应对这种情况,因为在操作顺序中,这些是在前 N 过滤器之前执行的,如前图所示。
备注
上下文过滤器的重大好处如下:
TEMP表在上下文过滤器引用TEMP表进行计算后的操作顺序和后续过滤器。假设你有一个包含 1 亿行的客户订单数据库,你只想查看加利福尼亚的客户,这是 1800 万行。通过在State上使用上下文过滤器,你正在限制整个数据集的查询,以便只使用加利福尼亚数据的一个子集来计算所有后续过滤器。这非常有用。Top N 过滤器:如上所述,如果你的视图中具有 Top N 过滤器,强烈建议使用上下文过滤器,以确保过滤器按预期的方式工作,显示所有 Top N,而不考虑选定的二级过滤器!
-
要解决这个问题,通过右键单击
Category并选择“添加到上下文”来将你的Category过滤器类型更改为上下文过滤器,如图所示:

图 11.65:如何将过滤器添加到上下文
- 如果你在“过滤器”架上的过滤器变成了灰色维度,那么过滤器正在被用作上下文过滤器。验证上下文过滤器是否按预期工作:

图 11.66:将“Category”设置为上下文相关过滤器后的视图
如预期的那样,使用Category作为上下文过滤器后,Category快速过滤器中的更改在视图中得到了适当的反映。Category成为依赖过滤器,其中前五个子类别的过滤器成为独立过滤器,处理通过上下文过滤器传递的数据。现在它正在使用上下文中的Category显示前五个子类别。
在这个练习中,你探索了上下文过滤器的重要性以及操作顺序如何决定数据在视图中呈现的方式。在这个练习中,上下文过滤器是Category,它成为了因变量,而在我们的案例中,前 N 个子类别成为了自变量。
集合
集合是自定义创建的字段,用于根据预定义的条件或规则定义数据的一个子集。
将集合想象成始终是二元的自定义段:数据点要么在段内,要么在段外,这取决于数据点是否符合定义的标准。集合是在维度上创建的,尽管如果需要,你的条件可以包括度量。集合可以是静态的或动态的,你还可以在 Tableau 中将多个集合组合成一个集合,这将会非常实用,你将在接下来的练习中了解到。集合在数据面板中通过带有维恩图图标的字段来识别,如图所示:

图 11.67:维恩图图标
静态集
如前所述,集合可以是动态的或静态的。在静态集合中,你定义集合规则并创建数据的一个固定子集,其中如果底层数据用新数据更新,集合成员不会更新。例如,你手动创建一个 Top City 集合,选择纽约、旧金山、孟买和伦敦。即使添加或删除了新数据,集合成员也不会改变。这是一个静态集合。动态集合可以帮助解决这个问题,但你将在后面的练习中学习动态集合。
练习 11.10:创建静态集合
在这个练习中,你将创建一个Sample - Superstore数据集的视图,其中所有名称中包含Envelope的产品都被分组为In,而其他所有内容都被分组为Out。
执行以下步骤:
-
如果你还没有打开,请在你的 Tableau 实例中打开
Sample - Superstore数据集。 -
创建一个按
产品名称的销售和利润视图。将产品名称拖放到行中,双击销售和利润以获取以下视图:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_11_70.jpg)
图 11.68:按产品名称的利润和销售额
- 在
数据面板中导航到产品名称,右键单击它。点击创建|集合...,如图所示:

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_11_69.jpg)
图 11.69:如何创建一个集合
在创建集合对话框中,你会注意到有三个选项卡(常规、条件和顶部),如果你还记得上一节中的过滤器,它们非常相似。
-
为任何名称中包含
Envelope的产品创建一个集合。选择从列表中选择单选按钮,搜索Envelope,然后按全部按钮选择包含Envelope的所有产品的列表。然后,将你的集合命名为Envelope Product Set,如下所示:注意
文本搜索不区分大小写,当你搜索文本时,它会搜索整个字符串,而不是找到完全匹配的。在这里,你搜索了
Envelope,但你的选择列表中也包含名称中包含Envelopes的产品。

](https://github.com/OpenDocCN/freelearn-ds-zh/raw/master/docs/tbl-ws/img/B16342_11_70.jpg)
图 11.70:手动添加集合成员
在你点击确定按钮之前,查看创建集合对话框中的摘要部分,并注意你的集合包含 1,850 个值中的 48 个。如前所述,这种手动选择项目进行集合创建的方式是静态的,如果稍后数据中添加了新的记录/行,集合成员将不会更新。你将在下一个练习中看到如何克服这种限制。
-
通过点击
确定按钮保存集合。 -
检查集合是否按预期工作。将“信封产品集合”拖放到“行”板中。考虑这里的“在”/“不在”集合。如果一个产品名称符合你设置的准则,那么该产品将“在”集合中;如果产品不符合要求,那么该产品将“不在”。

图 11.71:在/不在集合视图
- 通过在“信封产品集合”上右键单击并选择“显示集合中的成员”来显示实际的“产品名称”而不是“在”/“不在”:

图 11.72:如何在集合中显示成员
在这个练习中,你第一次遇到了集合,并观察了静态集合在仪表板上的使用情况。你还学会了如何从集合中显示/隐藏成员,以及“创建集合”对话框中的“摘要”标签代表什么。
下一节将回顾动态集合以及它们如何克服静态集合的不足。
动态集合
在本节中,你将了解为什么动态集合比静态集合更受欢迎。你还将练习使用上一节中遇到的“创建集合”对话框中的剩余两个标签。动态集合使用逻辑动态更新集合的成员,这意味着当数据发生变化时,集合将被重新计算,并且可以根据计算结果添加/删除“在”/“不在”成员。
练习 11.11:创建动态集合
尽管你之前创建的集合很好,但负责所有“信封”产品的产品经理要求你创建一个分组动态视图,因为他希望在添加或删除新产品名称时更新“在”/“不在”组。你将使用之前练习中创建的相同视图,并将其扩展以添加动态集合。
执行以下步骤:
-
如果您还没有这样做,请在您的 Tableau 实例中打开
Sample - Superstore数据集。 -
创建一个按“产品名称”显示“销售额”和“利润”的视图。将“产品名称”拖放到“行”中,双击“销售额”和“利润”以获取以下视图:

图 11.73:按产品名称显示的利润和销售额
-
在“数据”面板中导航到“产品名称”,然后右键单击它。点击“创建”|“集合...”。
-
扩展您之前的集合标准。您想要的是销售额超过 100 美元的前五个盈利的包装产品名称。为此,使用“条件”和“顶部”标签。首先创建至少 100 美元销售额的条件,如图所示:

图 11.74:条件集合定义
- 在“顶部”标签中添加前五个盈利的“信封”产品的标准,如图所示:

图 11.75:动态集合定义
-
您尚未像对静态集合那样对“信封”进行筛选,但如果您使用相同的“常规”选项卡来筛选“信封”产品,当添加新数据时,您的集合将不会更新。为确保您的未来数据被考虑进集合中,请使用“条件”选项卡并编写一个计算公式来动态完成此操作。然后,取消选择“按字段”并使用“按公式”并编写以下公式:
MIN(CONTAINS([Product Name],"envelope")) AND SUM([Sales])>=100
![图 11.76:基于公式的条件集合
![图片 B16342_11_76.jpg]
![图 11.76:基于公式的条件集合
注意
您必须为“产品名称”使用MIN,因为在计算字段中,如果不使用聚合对非聚合维度进行聚合,则不能混合聚合和非聚合,正如前几章所述。
- 在您进行现场检查并保存集合之前,请审查对话框的“摘要”部分:
![图 11.77:集合摘要框
![图片 B16342_11_77.jpg]
图 11.77:集合摘要框
在“摘要”部分,您的选择显示为0,因为您尚未手动选择任何内容。“条件”是您在“条件”选项卡中使用的公式,“限制”是“顶部”选项卡中的标准。
- 将您在最后两个练习中创建的两个集合拖到您的“行”架上:您可以看到,在“前五名利润信封产品”中,有前五行的利润。这五个产品也是静态集合的一部分,因为这些产品名称包含“信封”。
![图 11.78:动态集合的最终输出
![图片 B16342_11_78.jpg]
图 11.78:动态集合的最终输出
通过这个练习,您现在可以创建一个非静态集合,该集合可以根据数据集的变化或当向集合中添加或删除新数据时更新集合成员。动态集合通常比静态集合更受欢迎,因为它们允许您确保在您不在仪表板上积极工作时,新数据将填充到集合中。
向集合中添加成员
在前两个部分中,您都是从零开始创建集合的。在本节中,我们将讨论您想要向集合定义中添加更多条件以添加新成员或删除成员的情况。向集合中添加成员通常是在利益相关者想要更新基础集合的条件或开发者想要对复杂的条件逻辑进行实验时进行的。
以下练习将指导您如何完成此任务。
练习 11.12:向集合中添加成员
对于您在上一节中创建的“信封产品集”,产品经理希望您将一个特定的产品添加到集合中,因为他们无法从他们的视图中将该产品添加到集合中,并且该产品不是前 N 名销售或利润的一部分。作为仪表板开发者,您被要求将该特定产品添加到集合中。
执行以下步骤:
- 您将重用之前练习中创建的视图,但为了演示向集合中添加成员的工作原理,请从视图中删除
Envelope Product Set。您的视图现在应如下所示:

图 11.79:将成员添加到集合中
- 要向集合中添加成员,选择您想要包含在视图中的产品名称/数据行,并左键单击该行,以获得以下内容:

图 11.80:从集合中包含/排除成员
- 在选项面板中单击 韦恩图 图标,并选择
添加到 Top 5 利润丰厚的产品包 (Sample – Superstore),如下截图所示:

图 11.81:将产品添加到集合中
- 一旦您这样做,行
3M Polarizing Task Lamp with Clamp Arm, Light Gray就会从Out集合移动到In集合,如下所示:

图 11.82:产品已添加到集合中
- 如果您想从集合中删除数据行,请遵循类似的过程。而不是添加,从集合选项中删除,如下所示:

图 11.83:从集合中移除成员
向集合中添加成员非常简单,当您想手动更新成员集而不编辑集合的实际定义时,这非常有帮助。
合并集合
您现在已创建了静态和动态集合。单独来看,这些集合工作得很好,但您也可以通过合并多个集合来扩展 Tableau 功能,创建一个合并集合。使用合并集合,您可以执行额外的分析,比较和对比多个集合。当您创建一个合并集合时,您创建了一个全新的集合,该集合包含以下组合:两个集合的所有成员、存在于两个集合中的某些成员,或来自一个特定集合的成员。
完成以下练习以在实践中看到这一点。
练习 11.13:如何创建合并集合
您的区域经理希望您创建一个视图,显示既在 按利润排名前 20 的州 又在 按销售额排名前 20 的州 的州。您将利用合并集合来完成此操作,这些合并集合将首先从您创建的两个单独集合中创建:按利润排名前 20 的州 和 按销售额排名前 20 的州。
执行以下步骤来完成此练习:
- 如果您还没有打开,请打开 Tableau 实例中的
Sample - Superstore数据集。
集合 1:按利润排名前 20 的州:
- 如下所示创建您的第一个集合
Top 20 [States] by [Profits]:

图 11.84:创建集合
- 将集合命名为
Top 20 States by Profits,从窗口中选择Top选项卡,并选择By field和Top 20 by Profit Sum,如下所示:

图 11.85:集合的前 N 个成员
集合 2:按销售额排名前 20 名的州:
- 类似地,创建你的第二个集合,使用
按销售额排名前 20 名的[州],如下所示:

图 11.86:集合的前 N 个成员 -2!
- 通过将
State拖动到行架并添加利润和销售额到视图中,创建一个视图,如下所示:

图 11.87:按州划分的利润和销售额视图
- 将
按利润排名前 20 名的州和按销售额排名前 20 名的州添加到行视图,如下所示:

图 11.88:两个集合视图
目标是从合并集合中创建一个列表,其中包含既是利润又是销售额前 20 名的所有状态。为此,你需要两个你刚刚创建的集合的所有In成员。
- 按住Command + 多选两个集合(Mac)或Ctrl + 多选两个集合(Windows),然后点击
创建合并集合...:

图 11.89:创建合并集合
- 在
创建集合模式窗口中,将你的新集合命名为销售额和利润的前 20 名状态。你还可以从下拉菜单中更改你想要包含在合并集合中的集合。你的合并集合中有四个成员选项,这些选项相当直观。你想要一个包含既是销售额又是利润前 20 名的所有状态的列表,所以使用如下所示的两个集合中的共享成员:

图 11.90:合并集合定义
前面的步骤中提到,你希望你的合并集合包含两个集合中的所有In成员。在下面的屏幕截图中,你会观察到合并集合具有与两个单独集合交集相同的所有状态。

图 11.91:合并集合视图

图 11.92:利润和销售额前 20 名的状态
最终输出将如下所示:

图 11.93:合并集合最终输出!
在本节的最后关于集合的部分,你通过一个示例了解了如何使用合并集合。下一部分将探讨参数。
参数
参数在 Tableau 中类似于变量/占位符,它赋予了最终用户控制视图或报告中显示的数据的能力。它们允许你自定义视图,为工作簿添加交互性和灵活性。参数用于将视图中的常量值替换为更多变量/动态值,这些值由最终用户控制。它们可以接受任何数据类型:字符串、整数、浮点数、日期或任何 varchars。它们很容易与过滤器混淆,但参数与过滤器的主要区别在于,使用过滤器时,数据从视图中过滤掉,因此只显示过滤值,而使用参数时,变量仅作为参考。参数控制变量的值,而不是在数据上过滤。
要在视图中使用参数,你需要执行以下四个步骤:
-
根据需求创建参数。
-
向最终用户展示参数控制,就像我们对集合/过滤器所做的那样。
-
可以在计算字段、过滤器或参考线上使用这些参数。
-
在视图中使用计算字段、过滤器和参考线。
练习 11.14:标准参数
在这个练习中,你将创建并使用标准参数。为了观察 Tableau 和参数的真正本质,你将创建一个更高级的视图,允许你的最终用户选择他们想要在视图中看到的维度以及度量。
在前面的章节中,你已经赋予了用户过滤数据、创建分组以及在预选的维度和度量上创建集合的能力,但你还没有赋予用户根据他们的需求选择/更改维度/度量的能力。但是,有许多情况下利益相关者希望看到完全相同的视图,但度量/维度不同。因此,与其创建 4-6 个具有不同维度/度量组合的不同视图,不如让用户选择他们自己的度量维度,这是一种更有效处理请求的同时减少混乱的方法。这就是你最终要达到的视图:

图 11.94:参数的最终输出
执行以下步骤来完成此练习:
- 如果你还没有这样做,请打开你的 Tableau 实例中的
Sample - Superstore数据集。
在这个例子中,你将通过季度创建一个由最终用户选择的度量值的连续线图。如前所述,你希望赋予最终用户更改度量或维度的能力。
- 使用参数有四个步骤。第一步是创建一个参数。你可以通过在
维度面板中点击箭头并点击创建参数...,如图下截图所示,或者右键单击参数面板中的任何位置并点击创建参数...来完成此操作:

图 11.95:创建参数
在这个练习中,您将创建两个参数:一个用于选择“度量”,另一个用于选择“维度”。
- 首先,创建一个用于选择“度量”的参数。在“编辑参数”模态窗口中,您有六个数据类型可供选择:
Float、Integer、String、Boolean、Date或Date & Time。由于您的参数包含文本,请使用String作为数据类型。对于“允许的值”选项,而不是所有值,请使用“列表”,这样您就可以定义最终用户选择度量的可用选项。

图 11.96:参数创建中的数据类型选项
当您为“允许的值”选择“列表”时,您将看到“值列表”选项。然后您必须定义您的列表,这将包含用户可以选择的度量名称。
- 手动将“销售额”、“利润”、“折扣”和“数量”添加到“值列表”。您的创建参数窗口应类似于以下内容:

图 11.97:为参数添加度量选项
- 对“选择维度”重复相同的步骤。创建参数的模态窗口应类似于以下内容:

图 11.98:为参数添加维度选项
下一步是将创建的参数用于计算字段。默认情况下,除非您将参数用作计算字段、参考线或过滤器的一部分,否则参数不会控制任何内容。您将使用计算字段来使用参数,该参数作为占位符,用于动态填充计算字段,以包含最终用户选择的度量/维度。
- 现在创建一个名为“度量参数”的计算字段。

图 11.99:创建计算字段
-
使用
CASE语句,以便如果用户在参数中选择“销售额”度量,您的计算字段应在视图中显示SUM(Sales)。如果用户在参数中选择“利润”度量,您的计算字段应在视图中显示SUM(Profit),依此类推。以下是计算字段的公式:CASE [Select Your Measure] WHEN "Sales" THEN SUM([Sales]) WHEN "Profit" THEN SUM([Profit]) WHEN "Discount" THEN AVG([Discount]) WHEN "Quantity" THEN SUM([Quantity]) END

图 11.100:度量参数的CASE语句计算字段
-
对计算字段“维度参数”重复相同的步骤,使用以下
CASE语句:CASE [Select Your Dimension] WHEN "Segment" THEN [Segment] WHEN "Category" THEN [Category] WHEN "Sub-Category" THEN [Sub-Category] WHEN "State" THEN [State] END

图 11.101:维度参数的CASE语句计算字段
- 下一步是创建一个包含计算字段并使用我们两个参数的视图:将“维度参数”以及“度量参数”拖到“行”架上。接下来,将“订单日期”拖到“列”,并将日期维度更改为按季度连续日期。您看到的视图是基于您在创建参数时选择的当前值预先选择的。您为
{选择您的度量}参数选择了Sales,为{选择您的维度}参数选择了Segment。因此,您当前视图是按Segment的季度Sales趋势。

图 11.102:已选择默认参数的参数视图
- 最后一步是允许您的最终用户控制视图中的度量以及维度。右键单击您创建的参数,然后单击“显示参数控制”。为其他参数重复此步骤:

图 11.103:显示参数控制
- 将参数控制添加到您的视图中,这样最终用户就有能力选择他们想要的维度/度量。以下是两种具有不同维度和度量组合的视图:
按类别利润:

图 11.104:按类别参数视图的利润
按段数量:

图 11.105:按段参数视图的数量
对于最终用户来说,查看不同的组合可能会感到困惑,因为线形图或图形视图没有显示哪个维度/度量是视图的一部分。尽管您有下拉菜单,为了使最终用户更容易操作,您也可以通过创建一个与视图中的维度一起更新的动态标题来在标题中包含提示。通过双击工作表标题来编辑标题,这将打开如图所示的“编辑标题”窗口:

图 11.106:编辑标题
上述公式使用了动态变量。特别是<Parameters.Select Your Dimension>是动态的,这样当您从工作表的下拉菜单更改参数时,标题将自动更新。您不需要输入确切的变量;您可以通过点击窗口右上角的“插入”来插入这些变量,如图所示:

图 11.107:在标题中插入动态变量
这里是您所期望的最终输出:

图 11.108:带有参数控制的参数最终视图
在这个练习中,你学习了参数是什么以及如何结合计算字段使用它们来创建一个动态工作表,其中最终用户可以完全控制他们想要报告视图包含哪些维度/度量。本节中传授的技能将大大有助于你在 Tableau 的高级知识和专业技能方面的成长。
动态参数
动态参数是 Tableau 社区论坛中最受欢迎的功能之一,Tableau 开发者在 2020 年 2 月的 Tableau 2020.1 版本中发布了该功能。在 Tableau 版本 2020.1 之前,标准参数有一个特定的限制:当数据通过新条目(特别是日期)更新时,参数列表/成员不会更新。这意味着 Tableau 作者每次数据源更新时都必须手动刷新参数列表,这可能会非常耗时。动态参数克服了这一点。有了这些,你也可以允许你的参数自动选择最新的日期,这在之前是不可能的。让我们通过一个练习来探索这是如何工作的。
练习 11.15:动态参数
在这个练习中,你将使用新的虚拟数据来查看之前版本的 Tableau(2019.4 或更早版本)中的参数看起来是什么样子。然后,你将按照以下步骤使用新的参数自动更新参数列表,当数据源更新时。
注意
已包含之前版本的 Tableau 的截图;然而,你可能没有那个选项。目标是传达静态参数与动态参数之间的区别,因此你不需要安装两个版本的 Tableau。这个练习将坚持使用 Tableau 2020.1 或更高版本。
执行以下步骤以完成此练习:
- 在 Tableau 中创建一个名为
DynamicParameters.csv的文件。创建一个参数,并将数据类型设置为日期,允许的值设置为列表。而不是手动添加这些日期,使用从字段添加和日期列来预先填充值列表,如下所示:

图 11.109:动态参数 – 从字段添加
如前所述,这种方法相当静态。如果添加了新的数据并带有新的日期,参数不会自动预先填充 值列表 以包括作为更新数据源的一部分的新日期,这是 Tableau 之前版本的一个限制。
-
在 Tableau 中创建一个名为
DynamicParameters.csv的文件,创建一个参数,并将数据类型设置为日期,允许的值设置为列表。请注意,一旦选择列表,与 Tableau 的早期版本不同,Tableau 2020.1 有两个选项:-
固定:这是你可以从字段预先填充列表的地方,就像你在之前的旧日期参数中做的那样。 -
When Workbook Opens:这是一个动态选项,其中列表将预先从Date字段填充,但列表将根据新数据的更新/添加而更新。
-

图 11.110:Tableau 2020.1 及以上版本的动态参数
- 在前面的屏幕截图中,最后日期是 5/2/2020。使用您选择的工具(非 Tableau)打开
DynamicParameters.csv电子表格,并添加一行,Date: 5/3/2020 and Sales: 80。按照以下所示保存文件:
![Figure 11.111: DynamicParameters.csv 的 CSV 数据
![img/B16342_11_111.jpg]
图 11.111:DynamicParameters.csv 的 CSV 数据
- 要检查是否添加了新日期,请关闭您的 Tableau 工作簿(确保首先保存它)。然后,重新打开工作簿并编辑
New Date Parameter以确认新日期是否已附加到参数的值列表中。如以下屏幕截图所示,2020 年 5 月 3 日已自动添加到参数的值列表中。

图 11.112:使用当工作簿打开时的动态参数
在这个练习中,你回顾了动态参数和静态参数的主要区别,并看到了动态参数如何自动更新允许值列表,以与数据源更新同步。
在本章的最后部分,你将把你在 Tableau 的高级交互功能中学到的所有知识应用到实际场景中。
活动 11.01:使用参数、集合和过滤器的前 N 个国家
作为公司年度黑客马拉松的一部分,每个团队都需要利用 World Indicators 数据集来展示根据某些指标排名前 5 的国家。你决定通过能源使用情况展示前 N 个国家,并允许最终用户将 N 从 5 改变为 10、15 或 20 以便于使用。你将在本活动中使用集合、上下文过滤器和参数创建 World Indicators 数据集的交互视图。
在本活动的结束时,你将通过利用本章涵盖的所有主要主题来创建一个有趣的视图,特别关注上下文过滤器和最终用户交互性。
-
连接到从项目/书籍文件夹中下载的
WorldIndicators.hyper数据集。 -
创建一个按
Energy Usage的Country/Region的条形图。 -
创建一个具有 5、10、15 和 20 作为列表值的
Top N Countries参数。 -
创建一个名为
Top N by Energy Usage的集合,并使用Top N Countries参数实现用户交互性。 -
将
Top N by Energy Usage集合拖动到ColorMarks面板上。 -
将
Year[Year]显示为单个下拉过滤器。 -
确保更新
Year过滤器以根据能源使用情况更新top N countries的列表。提示:上下文过滤器。 -
使标题动态化,以便当
Top N Countries参数和Year过滤器更新时,标题应相应地反映这些变化。例如,如果用户选择了 2010 年的前 10 个国家,标题应该是2010 年能源使用量前 10 个国家。
最终预期输出如下:
![图 11.113:活动最终输出]
![图片 B16342_11_113.jpg]
![图 11.113:活动最终输出]
注意
本活动的解决方案可在此处找到:packt.link/CTCxk。
摘要
本章探讨了 Tableau 中的许多高级交互功能。我们仔细研究了 Tableau 中的操作顺序,这是掌握 Tableau 的最重要概念之一,如果我们想为我们的利益相关者创建一个高效的报告。我们还讨论了过滤器、集合、分组和层次结构,深入探讨了过滤器,探讨了维度、度量日期过滤器之间的区别,并练习了使用数据源过滤器,这可以是一种限制加载到您视图中的数据的好方法。
关于集合,我们回顾了静态、动态和组合集合,使用“Envelope”示例来演示这些概念。在参数部分,我们还定义了静态和动态参数之间的区别,并学习了参数的一个高级用例:维度/度量交换,您可以使用它来给最终用户提供选择他们想要包含在视图中的维度/度量的能力。
我们通过使用世界指标数据集的活动来结束本章。在这里,您使用集合、上下文过滤器和参数创建了一个复杂视图,这在某种程度上类似于您在数据工作中可能遇到的真实场景。
这本书的印刷版到此结束,但这并不是你旅程的终点。访问 packt.link/SHQ4H 以获取接下来的三个章节,涵盖如增加交互性的技巧和工具(本课程的第二部分)、仪表板分发,甚至有关利用多个数据源和本书学习过程中所学技能的实际应用的案例研究。








浙公网安备 33010602011771号