动态区域可见性(Dynamic Zone Visibility)是Tableau Desktop2022.3版本中新增加的交互功能,可以根据字段或参数的值隐藏或显示区域。在原有布局不变的基础上,灵活控制仪表板上的区域出现或消失,可以有效利用有限的仪表板空间。在之前的版本中,如果希望控制仪表板中不同内容的出现与消失,可以通过给仪表板中的对象添加“显示/隐藏”按钮的方式来完成。
但是这种方式只能通过一个固定的按钮来实现显示或隐藏对象的交互效果,对于要求比较高的交互场景,明显不太适用。而动态区域可见性实现交互的方式就更加的灵活。例如,当不同的用户组访问仪表板时,可以通过用户组函数控制向他们显示不同的区域。或者将动态区域可见性与参数动作结合使用。例如,当用户单击可视化项上的标记时,会出现一个先前隐藏的区域,再点击可以再次隐藏该区域,这样就可以实现一个更加复杂的交互式仪表板。
使用动态区域可见性的字段或参数有三个必须满足的条件,1、布尔值类型;2、单个值,通常当值为True时显示工作表,当值为False时隐藏工作表;3、必须独立于可视化项,也就是说这个字段或者参数是可以是行级别计算字段,可以是常数,也可以是FIXED 计算,但不能是聚合计算、表计算、或者EXCLUDE、INCLUDE计算。
- 创建参数“隐藏区域参数”
- 创建计算字段“常数”,值为TRUE
- 创建两个工作表,“类别销售额”和“子类别销售额”,其中“类别销售额”要保证“常数”字段也加入进来。
- 将工作表添加到仪表板,并在“类别销售额”勾选筛选
- 在布局中为“子类别销售额”设置动态区域可见性,由“隐藏区域参数”控制。此时就可以通过手动控制参数来达到显示/隐藏“子类别销售”工作表的目的了。
- 给“类别销售额”增加参数动作。
增加参数动作后,就可以点击“类别销售额”中的类别显示“子类别销售额”工作表,并实现筛选的效果。当点击空白区域,取消选中的类别后,就可以隐藏“子类别销售额”工作表。
其原始是,点击类别后,可以获取到常数(TRUE)这个值,然后这个值传参给“隐藏区域参数”,实现显示工作表的目的,当点击空白区域,取消选定子类别,参数被直接设置为“False”,实现隐藏工作的目的。
动态区域可见性配合参数动作,可以实现非常复杂的交互效果,Tableau Public上有很多类似的案例,比如手风琴菜单(Accordion Menu)等等,有兴趣的同学可以自行搜索。