最近因为疫情数据的原因,“网红” 动态柱状图又一次火了起来。
我第一次接触这种 “排名追逐图”是在几年前看Abacaba做的围棋排名,当时就震惊到原来可视化还可以这样做:
其实这么高大上的动态图,Tableau 一样也可以做,先上效果图:除去事先下载整理数据,整个Tableau过程我掐了一下秒表,用了大约120秒的时间:
这个要得益于2020最新版Tableau 的 Animation 功能
Step 1: 找数据
我用的新冠确诊数据来源于OurWorldInData.org:
Coronavirus (COVID-19) Cases - Statistics and Researchourworldindata.org你的数据至少要有3类:
- 一个Dimension维度. e.g: 【国家名称】 = Country
- 一个Date 时间点. e.g: 【日期-年月日】 = date
- 一个Measure度量. e.g: 【确诊数】= total cases
Step 2: 做一个stacked bar chart 堆积柱形图
- 将一个Measure度量 (total cases) 拖拽到 Columns 里
- 将一个Dimension维度(Country) 拖拽到Color 颜色
- 将同一个Dimension维度(Country)拖拽到Text 文本
Step 3: 做一个Calculated Field 计算字段
e.g: 命名为OurRanking 的 Calculated Field, 其中包含了这个function: 复制粘贴一下,然后把total cases 改成你的数据里的measures的名字
RANK_UNIQUE(SUM( [total_cases] ))
把刚创建好的 OurRanking 的 calculated Field 拖拽到Rows, 并且点击这个calculated field, 让其computing using "Country" :
最后再把这个calculated field 从 continuous 变成 Discrete :
Optional: 如果你的数据里Country太多的话, 那么就会导致太多的Color (一个国家一种颜色),所以你可以加一个filter,只选择 total cases 总数前10的国家:
Step 4: set up 好时间线
把 date 拖拽到 Pages, 并把格式改为 "Day" - (取决于你想以怎样的时间线“快进”,如果你想以每一年为单位快进,那就把date的格式设置为Year)
Step 5: 开启Animation自动更新
- 点开Format --> Animations 开启Animation的操作页面
- 把Workbook Default 的 Off 变成 On
在Duration里, 自定义customize一下速度 - 这个取决于你想以多快的速度 “快进", 我选的是0.1秒,建议你多试一下不同的速度,达到你想要的效果:
在右下方的时间操作栏里, 开启自动更新模式:
注意:
- 红圈中的三个Bar也可以用来改变速度,如果觉得慢的话,就选择最右边的三条线
- 绿圈的show history 不要选
Step 6: 让柱状图变得更美观
如果你想改变某一个柱状图的颜色, 在右侧的Filter里直接点你想改变的国家,然后重新选择颜色:
如果你想在柱状图加上随时间变化的【数据】:
把 (sum(total_cases)) 加到Label 里:
如果你有更好的方法,也请和我分享 :)