用Tableau制作滚动时间轴(上)

最近看到ken大神的滚动时间轴教程,非常的喜欢,就根据教程模仿了一下。实现起来不是很难,但是效果非常的好。

文章地址:https://www.flerlagetwins.com/2020/03/scrollable-timeline.html

下面我就根据自己的实现过程,把步骤和原理都讲一下,内容基于ken大神的博客,步骤略有更改。

创建数据集

美国总统数据集下载地址:http://w2h.cc/MWY2Z

先将数据集中的[Year]表和[Events]表做如下图的左连接:

由于Events表只有总统开始任期的年,所以为了保证时间轴是一个连续完整的动态效果,需要辅助的Year表,来构造一列连续的年。

创建计算字段

创建4个整数型参数
  • Timeline Start 作为时间轴的开始年,默认开始是1789。
  • Timeline Years 作为时间轴的长度,默认值30。

  • Timeline End 作为时间轴的结束年,默认值结束是1818(1789+30)。

  • Timeline Step 作为每次时间轴滚动的年限,默认值10。

创建计算字段
  • Year Filter=
IF [Year (Year)]>=[Timeline Start] AND [Year (Year)]<=[Timeline End] THEN
    "Keep"
ELSE
    "Exclude"
END

通过这个字段,就可以保证时间轴只显示开始时间和结束时间之间的年份。

  • Is Event=
IF ISNULL([Event]) THEN
    FALSE
ELSE
    TRUE
END

通过这个字段确定哪些年份突出显示,哪些不显示。

开始做图

  • 将[Year Filter]拖到筛选器,只保留“Keep”。

  • [Year (Year)]拖到列功能区。

  • 在行功能区输入一个数字0,构造一个轴,标记选择“形状”。再输入一个0,构造另一个轴,标记选择“线”。双轴并同步轴。

  • 将[Year (Events)]拖到标记栏的“标签”里。

  • 将[Is Event]拖到标记栏的“形状”里,“真”选择圆形,“伪”选择一个“透明图形”。

最有意思的就是这个透明图形了,默认是没有的。我用PS做了一个透明图形,并输出成PNG格式。大家可以复制下来,找到“Tableau存储库”>“形状”文件夹,新建一个文件夹放,要不真是白茫茫一片,连自己都找不到。

透明图形.png

如下图所示,基本的时间轴就做好了。

制作交互按钮
计算最大年、最小年
  • Year First={FIXED : MIN([Year (Year)])}

  • Year Last={FIXED : MAX([Year (Year)])}

制作右按钮
  • Increase Year Start=
IF [Timeline End]+[Timeline Step] > [Year Last] THEN
    [Year Last]-[Timeline Years]-1
ELSE
    [Timeline Start]+[Timeline Step]
END
  • Increase Year End=
IF [Timeline End]+[Timeline Step] > [Year Last] THEN
    [Year Last]
ELSE
    [Timeline End]+[Timeline Step]
END

新建一个工作表,按照下图制作一个右按钮:

制作左按钮
  • Decrease Year Start=
IF [Timeline Start]-[Timeline Step] < [Year First] THEN
    [Year First]
ELSE
    [Timeline Start]-[Timeline Step]
END
  • Decrease Year End=
IF [Timeline Start]-[Timeline Step] < [Year First] THEN
    [Year First]+[Timeline Years]-1
ELSE
    [Timeline End]-[Timeline Step]
END

新建一个工作表,按照下图制作一个左按钮:

制作仪表板

将三个工作表组合到仪表板中。

新建4个参数动作

通过这4个参数动作,当点击左、右按钮的时候,通过计算字段将值传入[Timeline Start]和[Timeline End]参数,然后影响[Year Filter],达到控制显示哪些年份的效果。

基本的滚动时间轴就介绍完了,美化工作我将在下一篇中介绍。

但是学会上面的内容,其实已经可以做一些应用了,我模仿南方都市报的疫情数据做了一个Viz,当然这个更复杂一点,但是基本知识完全不超出以上内容,大家可以下载研究。

https://public.tableau.com/profile/jiangbin#!/vizhome/COVID-19EventsofChina/1

此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下

你可能感兴趣的:(用Tableau制作滚动时间轴(上))