在2018.3的版本中,Tableau推出了升级版的交互方式:集值,实现了更多的交互方法。而在2019.2的新版本中,Tableau推出了新的交互方式:参数动作,Parameter Actions 。这里我们带你一睹为快。
一、介绍
此前参数只能提前设定,并在右侧的控件中调整。如今,参数动作可以通过与视图中的标记交互,进而直接修改参数的值。不管是你的参数是日期、变量,用于分类或度量值,参数动作都可以让你使用视图的数据,作为直接的交互入口。比如下面的示例,通过点击不同的标题,视图可以产生相应的变化。它的原理是什么呢?
二、背后的原理是什么?
数据交互的本质是向视图传递假设参数引起相应的视图变化,借助数据的反馈辅助决策。过去我们使用参数,是把参数植入到筛选器、计算字段或参考线中,它们参与到视图的构建里;而依靠“参数控件”来调整传递的参数。参数动作并没有改变这个流程,只是增强了“参数控件”的方式,通过在视图上使用动作采集参数,整个交互更加流畅、方便、浑然一起。就像在photoshop中,你不再需要去色板去选择颜色,只需要用吸管在图像中拾取即可。
用上面的图,可以更加清晰地理解两种参数控制的区别,参数动作(或者称之为参数值)通过多种动作从视图中拾取参数值,而无需使用参数控件。
三、案例
下面,我们说几个示例,分别代表了不同的场景。其一是使用参数修改参考线,其二是分类钻取。我们使用之前表计算和集动作用过的数据,最后对比集动作和参数动作的差异。
1、交互参考线 INTERACTIVE REFERENCE LINE
在十大表计算的第一题中(【Tableau】10大Tableau表计算——深度解读),我们通过参数控件来更改视图的参考线日期,进而计算其他日期相当于参考日的百分比变化。使用参数动作功能,我们无需参数控件,代之以直接在视图中选择一个点,进而“拾取”所对应的日期作为参考日。
此题的计算逻辑无需变化,仅需要在视图上添加「参数动作」即可。方法如下:
工作表——操作——添加操作,选择我们想要改变的参数。
这里比较重要的地方是最下面的“值”---“字段”,假设我们只是选择了一个数值,那么无需聚合;但是如果访问者选择了多个数值怎么办?要么怎么都不做(none/无),要么就要指定一个方式,比如选择多个日期,可以使用最小值。
2、下钻 DRILLING DOWN A CROSSTAB
在分析集值的时候,我们分析了一个实现分类下钻的案例(下图动画,No.6 【Tableau】“集值”八大绝技:做可视化对比),如果我们换一下方式,能否使用参数来实现呢?
集值的逻辑就是选择的部分成为动态集,通过if判断,如果在集内,则返回子类的标题;同样的,我们可以用参数代替集,选择的类别成为动态参数,在参数中的类别,返回子类的标题。如果先做一个层次的下钻,就是如下的部分:
下一步就是通过参数动作,让参数随着选择而动态变化,如下图:
如此以来,选择就会引起参数的改变,而参数改变又通过计算字段(参数-team)引起视图的下钻变化。
如果我们要实现两级的选取如何?那就同样的道理,创建第二个参数,第二个计算字段,用同样的原理。不过这里需要注意一点,当我们选择第三季标题时,可能并不在第二级标题的范围之内,这样的钻取就没有意义了。如下图:
因此,我们就需要在第二个计算字段中增加一个判断,判断二级的标题还要在参数的范围之中,由于是一对多的关系,我们可以使用contain函数,这样就不会出现上面的错位情况了。if [team 参数]=[Team]and CONTAINS ( [参数-team], [Team] )
THEN [Player]else '' END
2+PLUS 集动作与参数动作的差异
当然,集动作和参数动作看上去实现的结果一样,但是会有重大的差异。集动作的控制更加精细,可以设置“清除动作后”的行为,比如取消选择,那么动态集也清除为空,这样就实现了全部折叠;但是参数不能为空,也没有“清除动作后”的选择。
通过集动作,可以传递多个数据,比如上面同时展开两个字段;但是参数的选择虽然可以多个,但是多个之后必须聚合为一个数值才能传递给视图。因此,我们要设定好如果访问者选择多个数据,字段应该如何聚合?
比如上面第一题,如果选择多个日期,我们可以选择“最大值”,那就就会以最近的日期为参考日期;同样,第二题,如果选择多个主分类,我们可以设置“最大值”,那就就会判断在数据源的先后顺序,如果此处选择“无”,多选时,系统就不会传递参数。
结
真正的BI是要帮助人们从与数据的互动中找到问题的答案的,参数动作进一步提高了互动的友好性,虽然和集值相比略显单薄,但是确实可以拉近互动的效率。
期待更多的案例分享给大家。
May 6, 2019
May 25, 2019