[English]by BETHANY LYONS | Tableau产品经理 2018/11/06
[译+说明]by 喜乐君 Tableau Partner
//本文是官方英文的翻译,同时增加了每个案例的步骤解读。不做搬运工,而是做解说家。——喜乐君
交互是高级分析的核心操作,它可以帮助用户回答更深的问题、帮助终端用户在互动中寻找答案,提供更好的客户用户体验。更加引入注目的互动可以为你的听众,比如客户和利益相关者呈现更丰富的内容,而这驱使他们的好奇心和参与感,正是好奇心和参与感,驱动每个人的数据素养。
目前,Tableau的互动依然关注于筛选和高亮这样已有的动作类型,遗憾的是这些互动的行为结果都是固定的,比如高亮可以突出显示,却不能把选择的部分单独标记颜色,筛选可以保留结果却不能对比它与整体的关系。因此,我们推出了新的互动形式——把集和动作结合的集值(此前曾经翻译为集动作)。
新的互动形式——集值set actions
集非常强大,它可以把用户的选择用于可视化和计算的各种地方,集可以对视图中的轴或者计算字段的字段进行着色、分组、筛选,它还可以聚合、组合字段、隐藏数据,以及筛选相关的字段,而这仅仅是个开始。
在2018.3版本中,集值可以帮助大家把视图中的数据建立选区,然后保存到集中。集值不仅仅是一种动作类型,它扩展了Tableau的交互方式,从而可以支持更多的用户自定义动作。
集可以在不同的工作簿中展现不同的结果,比如同一个集在视图A中用于着色,在视图B中用于隐藏数据,而在视图C中用于筛选数据轴。如今有了集值动作,任何一个工作簿中的集被修改,其他的目标工作簿都可以相应地更新。这种建立在一个集基础上的一致性体验可以增强展示的丰富性,为多种交互式分析程序的终端用户所使用。
这篇博客将集中介绍使用集值做对比分析,下一篇将更多地介绍集值带来的交互分析技术。
学习目标
集值连接了两个现有功能(集和动作),为基于已有功能创造新的交互功能提供了各种可能性。在这篇博客中,我们将探索“部分对比总体的占比分析”、“部分对比部分的比较分析”、“选区的差异分析”三个主题。虽然集值让这些分析成场景变得可能,不过这里的案例侧重于终端数据设计流。我们可以获得以下:
- 对比分析的新方法,增强了对数据的理解和沟通
- 数据结构如何影响计算结果,如何选择运用表计算还是详细级别表达式
- 借助互动,一次性展示多重数据,比如随时间的变化、相对差异、部分与整体对比分析。
一、“部分VS整体”分析 Part-to-whole analysis
当我们分析选区相对于总体的贡献时,有时候,我们想计算它相对于总体的百分比,而又想知道相对于总体的绝对值;在另一些情形中,你还想计算选区的部分相当于总体的差异。接下来的几个例子,我们想论述这几个场景,这三个例子逐次递进,因此建议依次观察。
案例1:作为总体部分的选区 Selection as a percent of total
- 概念:和筛选是仅保留筛选后的结果不同,集则根据选取数据分为了集内和集外两部分。保留了所有的数据意味着你可以轻松计算选中数据的总体占比。
- 数据源:2018年世界杯球员和球队的市场价
- 场景:2018年世界杯,选择的球队、组或者区域的市场价格占总体的比例多少?同时,对应的球队的数量占总体的比例多少?
- 说明:当选择欧洲时,你可以发现它以44%的球队数量占比,贡献了66%的市场价值占比。
- 注意:交互中你会发现帕累托法则(二八原则)。交互式分析有助于直观简洁地探索数据背后的概念。
「喜乐君说明」说一下上面的动画视图,选择的国家构成集。左边地图颜色代表的每个国家的market value,右侧两个饼图,分别显示集的市场价值占比和球队数量占比——关键是共用一个集(team set)。选择几个国家,就会更新team set集,由此就会显示新集的金额占比和团队占比。
这里有一个需要注意的细节是,主视图中加入了多个详细级别,方便右键选择所在的群组。
案例2:比例刷 Proportional brushing
- 概念:比例刷作为一种交互方式,用来对比选中的数据相对于总体的比例。
- 场景:哪些球员位置的市场价最高?对于球队而言,哪些球员位置贡献了更大的市场价值比例?
- 说明:当位置的市场价占比高于选择的球队占比,说明这些选中的球队拥有更高价值的球员。 当位置上的占比与总体的占比不同时,说明这些选择的球队在选区内的相对实力或者劣势。
- 延伸说明:筛选帮助我们知道数据是多少,而集(通过占比分析)帮助我们理解和解释结果。



CASE [Sort By]
WHEN “Overall” then SUM([Market Value (£)])
WHEN “Selection” then SUM([Market Value for Selection])
ELSE [% of total]
END
自定义字段 :Market Value for Selection
公式:if [Team Set] then [Market Value (£)] END
这里也可以使用iif函数,即:iif ( [Team Set], [Market Value (£)] ,0)
自定义字段:% of total
公式:SUM([Market Value for Selection])/SUM([Market Value (£)])
案例3:总体排序的差异和选区排序 Difference in overall rank and rank across a selection
- 概念:集可以用于指定的筛选结果。筛选都是应用于视图中的所有字段,而集可以应用于单个坐标轴或者是某个字段的子集。
- 场景:在上面的例子中,更改总体排序和选择的数据排序时,结果会跳动。用户有时候需要反复查看前后的结果才能作出准确的对比,如果能在一个视图中对比二者的排序结果岂不很好?
- 说明:左侧条形图代表总体的足球位置市场价排名,而右侧的条形图代表被选择国家的足球位置排名。如果左右排名一致,连接线就是水平的;红色的右下倾斜线代表被选择国家的位置排名低于总体排名,反之代表被选择国家的总体排名高于总体排名。这样是不是非常直观?
- 延伸说明:在交叉图标中,左侧的排名是固定不变的,集的使用实现了仅对右侧的坐标轴和颜色做筛选调整。

【喜乐君说明】右侧的条形图方法和案例二一致,通过自定义字段保留了集内成员的市场价值,这样就仅对集内成员做了筛选。
自定义字段 :Market Value for Selection
公式:if [Team Set] then [Market Value (£)] END
关键在于中间的条形图,视图中使用了两个度量值,显示方式则为线条。左侧是总体排序,rank(sum[market value]),右侧就是选择部分的排序rank(sum[market value for selection])。
二、“部分VS部分” 分析 Part-to-part analysis
在关系型数据结构中,跨列比较非常容易,比如利润除以销售额得出利润率。但是如果是在单列中跨行比较,就略显麻烦,比如欧洲比美洲的销售额,或者2017年比2018年的销售额等。集值帮助我们让这一类跨行比较更方便。
案例4 :标杆分析 Benchmarking
概念:比较两个子集的度量,需要生成新的中间字段。度量和维度列需要动态的转化为“子集1的度量”和“子集2的度量”。这可以通过集值来实现,集如同是针对度量的筛选器。
This can be achieved through set actions, because sets are like filters for individual measures.
数据源:2018年世界杯球员和球队的市场价
场景:球队A和球队B的平均球员价值相差多少?两个球队各个球队位置的差异又如何?或者说欧洲国家前两强相对南美国家前两强的差异如何?作为主办方,俄罗斯与其他国家的比较如何?
说明:纵轴代表橘色分组中各球队的平均市场价值,而横轴代表蓝色分组中各球队的平均市场价值。散点图中的每个点,代表球员的位置。橘色的点意味着橘色国家的球员市场价更高,反之蓝色点代表蓝色国家的球员市场价更高。
延伸说明:过去,我们只能通过参数来做类似的标杆分析。如今,集值提供了更好的分析途径,它有几个显而易见的优势:
- 可以多选,比如选择两个国家;
- 动态的与国家字段绑定,毕竟集是以国家为基础字段建立的;
- 在可视化分析中直接互动,而不是通过下拉选项选择;
- 可以在筛选器之后自动更新,从而显示相关的结果。

自定义字段:Market Value for selection 1
函数:SUM(if [Country 1] then [Market Value (£)] END)
自定义字段:Market Value for selection 2
函数:SUM(if [Country 2] then [Market Value (£)] END)
我们知道做两个度量的相关性分析,就是使用散点图,因此把上面的两个度量加入行列坐标,详细级别为球员位置,为了区分球队的差异,使用差异字段着色,因此颜色是下面的自定义字段:
自定义字段 Difference
函数 AVG([Market Value for selection 1]) – AVG([Market Value for selection 2])
之后把球员数量展示图形的大小,结果就是下面的图形:
接下来,我们需要把横纵坐标上面加上国家列表,并把国家的选择和集建立动态关联——集值动作。以country1为例,我们把选择的国家动态地加入集,如下图:
最后做了必要的修饰,一是在右侧通过地图形象地添加了两个动态集对应的国家,使用了筛选器显示选择的结果;二是在主视图中,添加了一个辅助的45度参考线,这里使用了双轴,注意行的第二个轴,是从列复制的。
案例5:区间对比 Range comparisons
概念:随时间变化是一种非常重要的对比分析类型,这类分析中,视图用户需要灵活的选择对比的初始范围和结束范围。
数据源:1995至2018年伦敦房屋名义价格
场景:给定两个时间区间,从第一个时间区间到第二个时间区间的增长率是多少?不同的区域增长率的对比如何?
说明:上面的时间视图就像是虚拟的指示器,告诉大家增长是如何对比的。两个日期随时间对应蓝色和灰色的渐变,水平的参考线显示了随时间变化的平均值区间。而上面的文本差异(差异百分比和差异绝对值),总是和两个参考线的差异数值相同。
延伸说明:这里的差异计算方法和上面的案例4基本一致,虽然看上去是完全不同的使用场景。
自定义字段: Year 1 priceif [Year 1] then [Normalised Price] END自定义字段: Year 2 priceif [Year 2] then [Normalised Price] END// year 1/2 集内的名义价格,单独生成字段
三、选区差异 Difference from a selection
案例6:与选区平均值的差异 Difference from summary average across a selection
//这个题目在15大详细级别表达式中出现过,当时使用了exclude LOD表达式。在这里,我们可以直接把视图中的选择,通过集值的交互方式,传递给字段计算。
- 概念:和筛选器是应用于视图的所有字段不同,集可以通过计算只应用于指定的单个条目。
- 数据源:2018年世界杯球员和球队的市场价
- 场景:每一个球队相当于市场平均价格的差异是多少?
- 说明:视图展示了2018年世界杯各个球队的的市场价与总体平均值的差异。当用户选择国家、群组、地区,或者随意选择几个国家(比如西班牙语言国家),平均值会重新计算生成。
- 延伸说明:集仅仅是计算了选中部分的平均值,而如果使用筛选器则会移除所有不在视图中的国家数据。
- Noteworthy: The set is only filtering the average calculation, while a filter would remove all countries from the viz that are not in the selection.


(05/2019)在新推出的2019.2版本中,我们也可以使用参数+参数动作的方式来实现上述的互动方式。参数+参数动作也可以实现多选,并计算选择选取的平均值,具体可以参考另一篇文章:
- 【Tableau】高级互动的新秀之作:参数动作 (案例2)
案例7与选区的背景平均值差异 Difference from underlying average across a selection
- 概念:在上一个案例中,我们计算了跨多个条形图的平均值,而有时候,我们需要计算被选择数据的背景数据,这些信息并非在视图中直接可用。
- 数据源:1995年~2018年伦敦房产的名义价格
- 场景:当我们计算每个辖区的平均房价和被选中的辖区房价平均值的差异时,这个比较需要用到一些背景的数据。这样才能保证每项房产都有相同的权重。如果计算总体的平均价格,最终的房屋价格差异将会和本辖区的房产密度成反比。(在后面的说明中我对比了错误的方式和差异——喜乐君)
- 说明:视图中右上角的数字代表被选中的邮编辖区的平均房产价格。主视图中地图颜色代表每个辖区相对于右上角辖区的价格差异百分比,橙色代表更贵,而蓝色代表更便宜。
- 延伸说明:这个工作簿算是动态分组的预览,如同右上角的图例高亮了当前选中的辖区,这就相当于生成了一个动态的分组。在下一篇文章中,我们会详细说明动态分组的功能。

Average Price for Selection
{EXCLUDE [Postcode Area],[Outcode]: AVG([Price for Selection])}
案例8:随变化的选区与总体差异 Difference in change between a selection and the total
概念:这个案例集成了前面的三个场景概念,部分比总体的占比分析、随时间的变化,与选区的差异。
数据源:2017年~2018年股市数据
场景:假设独立的分析某只股票,人们往往会把上涨或者下跌归因于这只股票的特征;但是它也可能是因为只是符合了大盘的某个特定的变化趋势。为了说明这个问题,我们就希望对比单只股票或者一组股票组合的价格随着大盘的价格波动而变化的情况。(portfolio of stocks=股票组合)
说明:比较股票的涨跌比例(the skew of distributions意译),即上涨、持平和下跌天数比较,可以反映关注的股票相对于其他股票的是不是增长更多,抑或下跌更多,而这个指标代表了股票的相对价值表现。绿色部分更多(上涨天数多),代表这支股票的表现优于大盘,而红色部分更多(左倾斜)即下跌天数多,则代表这支股票的表现落后于大盘。
延伸说明:注意,每只股票的日涨跌幅是在数据源层面提前计算好的(即包含在数据源中),因为这个是行级别的计算,不需要在股票后重新计算一遍。而对于选择的股票而言,每日变化则是详细级别表达式,因为详细级别表达式(LoDs)可以跨行来传递数据(propogate a value across rows)。每只股票和选择股票的每日涨跌幅差异也是行级别的计算(引用了详细级别表达式的结果),因为它必须要每天、每只股票的计算,这就是数据源的颗粒度。最终的直方图,显示每只股票及数据桶对应的股票上涨或者下跌相对于选区的天数。(这个看图才能好理解)
自定义字段:Change for selection
{ Fixed [Date]: AVG(if [Ticker] then [% Change] END) }
//指定每一天: 如果在集中,返回它的当日Change百分比,多个值以平均做聚合
//含义:每天,集内成员股票变化百分比的平均值。
//比如同时选择DATA、IBM和Facebook三家公司,则返回每天三家公司的变化平均值,如果数据源有100天,则返回100个数值。

自定义字段: Above or Below
if [Change for selection]> [% Change] then “Above”
ELSEIF [Change for selection]< [% Change] then “Below”
ELSE “Equal”
END
//如果集内的股票平均波动高于该股票的当日波动,则为 “above”(高于)
//反之,则为“below”(低于),否则即“equal“(相等)
//如果集为默认所有股票,则大盘高于本股票、低于该股票、平衡;
//如果集为选择几个股票,则……
集值让对比分析更强大、更灵活
借助集值,我们可以让对比分析更加强大和灵活。集值可以帮助我们实现多选和在视图中直接互动,而无法使用列表,也不需要使用参数来实现多重的交互对比。而且,集值是动态的链接,你可以通过拖拽直观的表达。
下一篇我们会介绍使用集值的的8种新技术。
May 6, 2019
May 26, 2019 revises
集的部分会做成视频吗?还有可视化交互这一块的
赞赞
你好,暂时只有lod和表计算的视频,其他的要下半年
赞赞
7和8 的文件打开报错:
无法完成操作
尝试加载工作簿 “/Users/maoge/Downloads/e6a188e4be8b7-8 (1)/Example 7 – Difference from Underlying Average.twbx” 时出错。加载无法成功完成。
错误代码:A19C3D8C
Error opening archive file. Invalid twb or twbx file.
赞赞