引
数据可视化在这次新冠疫情中可谓是大放异彩,国内外各家媒体基本也都发布了自己的每日追踪。 从专业的角度我个人比较推崇Financial Times的每日追踪的作品,如下图所示。
通过把不同国家的累计确诊或累计死亡人数放在发生10起后的第1,2,...n天, 可以很直接的对一个国家疫情发展速度的判断,并对不同的国家进行对比。FT最近把它做成了一个交互的作品免费放在了网上- FT官网的交互式可视化链接, 不需要会员或者登陆即可查看。
那下面来看看如何在Tableau中实现这样的功能。答案是11个步骤,5-10分钟。下面一起来看看如何实现吧。文末附有Workbook文件下载。
数据源
我们采用在Tableau官网免费发布的Covid-19数据集,Tableau公司在这次疫情期间也是快速响应,在自己的官网主页专门成立了Covid-19 Tag,发布了经过专业人士核验的新冠数据并进行每日更新。我们这里采用的是最简单的csv文件,从data.world 网站即可直接下载。我这里也把截止6月4日的csv文件上传了上来。
我们要用到的数据字段有如下
- Case Type:病例类型,两个值 确诊(Confirm)和死亡(Deaths)
- Date:日期,精确到日
- Country_Region: 国家/地区
- Case:累计病例数,注意这个已经是每日累计病例
- Difference:新增病例数
可视化制作
第一步 连接数据源
打开Tableau 连接数据源 COVID-19 Cases.csv。 我这里选择了做数据提取(Extract)以增加处理速度。
第二步 筛选Case类型
把Case_Type 从维度加入筛选器 选择Confirmed 作为默认值,并显示筛选器,选择单选。
第三步 筛选出现10例以上的病例的日期
建立一个FIXED LOD详细表计算 名称:国家地区级别每日累计病例,固定在国家和日期维度对Cases进行加总,拖至筛选器选择大于10 如下图
第四步 加入每日病例数至行(Y轴)
把Difference从度量拖入行,双击Y轴,然后选择比例-对数
第五步 加入Date日期至列(X轴)
把Date加入列,右击选择日期值为天。注意是第二个,代表连续的年月日。不是第一个天,仅仅代表日。
第六步 加入Country_Region国家/地区至标记-详细信息。点击右下角的>3k为负 无法做对数计算的值 选择筛选数值。这是因为很多国家在单日新增为0,无法做对数计算了。
这个时候得到一个比较凌乱的累计计数图,比较乱的原因是每个国家疫情爆发的时间是不一样的,接下来我们要构建一个表计算,实现X轴的变换。
第七步 构建表计算字段对日期进行计数
建立计算名称 Number of Days 计算公式很简单,就是
Index是一个计数的表计算,放在这个案例里,我们想要做的是对每一个国家/地区,对发生新冠以后的日期开始计数,第一天,第二天... 第n天。
第八步 修改列(X轴)
- 把原本在列上的Date拖入标记-详细信息
- 把标记类型改为线
- 把Number of Days 从度量拖入列
这时候得到了一条线的视图,别着急,我们离最后结果只有一步之遥啦。得到这个线的原因是表计算需要指定计算范围和方向作为计算依据,默认的计算依据表(横穿)在这里并不适用。
第九步 编辑表计算
右击在列上的Number of Days字段,选择计算依据-Date。可以这样理解这个表计算:对每一个国家/地区,沿着日期进行Index也就是计数表计算。
第十步 修改Y值为7日平均值
右击在行上的Diffence字段,选择编辑表计算,在弹出的窗口选择移动计算,前6个值和当前值构成7天的移动窗口,同样的选择特定维度 日期 来确定计算依据。
第九步 创建组来对比国家/地区
- 在维度上右击Country_Region 选择创建-组 这里我把美国作为一组,中国作为一组,其他国家归入其他。得到一个 Country_Region (组)
- 把Country_Region (组) 拉入标记-颜色,自定义颜色
- 把Country_Region (组) 拉入标记-标签 这里一个小技巧:把其他重命名为一个空白格,这样就只显示想对比的组了
- 简单的修改标题 横纵轴的名称,就得到了各国每日疫情发展图了。
接下来你可以自行修改视图的配色格式,自定义Y轴的数值(比如下图就是累计病例计算),自定义日期起始的标准(比如FT现在这个版本是按7日平均值高于10,而不是我们定义的累计超过10起),来追踪自定义的每日疫情发展了。
回到题图FT的风格的复刻,为了和它的统计口径一致。和基础版本不一样的地方在于Day 1起始日期的定义按7日平均值高于10,我也加入的一个小的中国数据集来提供一月的数据,我也把我的twbx文件放在这里,供你参考。
你学会了吗?快自己动手操作起来吧。学生朋友可以选择免费的Tableau Public 完成一样的工作。