tableau无法建立连接_如何用Tableau绘制新冠疫情走势图

ce645116dd1c6cdf897162b31a190623.png

数据可视化在这次新冠疫情中可谓是大放异彩,国内外各家媒体基本也都发布了自己的每日追踪。 从专业的角度我个人比较推崇Financial Times的每日追踪的作品,如下图所示。

28b31c2e1d97b95139d84a4b412b8023.png
FT Coronavirus tracked 的网页截图 (以美国和中国的每日新增7日均线为例)

通过把不同国家的累计确诊或累计死亡人数放在发生10起后的第1,2,...n天, 可以很直接的对一个国家疫情发展速度的判断,并对不同的国家进行对比。FT最近把它做成了一个交互的作品免费放在了网上- FT官网的交互式可视化链接, 不需要会员或者登陆即可查看。

那下面来看看如何在Tableau中实现这样的功能。答案是11个步骤,5-10分钟。下面一起来看看如何实现吧。文末附有Workbook文件下载。

0d0222d80e60c9c3bc637ed30945b872.png
Tableau 复刻版本 *数据集起点为2019年12月31日

数据源

我们采用在Tableau官网免费发布的Covid-19数据集,Tableau公司在这次疫情期间也是快速响应,在自己的官网主页专门成立了Covid-19 Tag,发布了经过专业人士核验的新冠数据并进行每日更新。我们这里采用的是最简单的csv文件,从data.world 网站即可直接下载。我这里也把截止6月4日的csv文件上传了上来。

COVID-19 Cases.csv
202.4M
·
百度网盘

我们要用到的数据字段有如下

  • Case Type:病例类型,两个值 确诊(Confirm)和死亡(Deaths)
  • Date:日期,精确到日
  • Country_Region: 国家/地区
  • Case:累计病例数,注意这个已经是每日累计病例
  • Difference:新增病例数

可视化制作

第一步 连接数据源

打开Tableau 连接数据源 COVID-19 Cases.csv。 我这里选择了做数据提取(Extract)以增加处理速度。

3ad6ddde94d9a64e139afc4920eb62b4.png

第二步 筛选Case类型

把Case_Type 从维度加入筛选器 选择Confirmed 作为默认值,并显示筛选器,选择单选。

33c3bdd121ad7cc42d423ad83d7d5e2a.png

第三步 筛选出现10例以上的病例的日期

建立一个FIXED LOD详细表计算 名称:国家地区级别每日累计病例,固定在国家和日期维度对Cases进行加总,拖至筛选器选择大于10 如下图

1c920d3a79037c8b6bce85106db94091.png

第四步 加入每日病例数至行(Y轴)

把Difference从度量拖入行,双击Y轴,然后选择比例-对数

ce96f0b24f20cea9dc79026df0eb9a5a.png

第五步 加入Date日期至列(X轴)

把Date加入列,右击选择日期值为天。注意是第二个,代表连续的年月日。不是第一个天,仅仅代表日。

2e19d9442532ef083f8691e70285c77f.png

第六步 加入Country_Region国家/地区至标记-详细信息。点击右下角的>3k为负 无法做对数计算的值 选择筛选数值。这是因为很多国家在单日新增为0,无法做对数计算了。

226a428a895d1e2137ccb1ceb5044751.png

这个时候得到一个比较凌乱的累计计数图,比较乱的原因是每个国家疫情爆发的时间是不一样的,接下来我们要构建一个表计算,实现X轴的变换。

第七步 构建表计算字段对日期进行计数

建立计算名称 Number of Days 计算公式很简单,就是

abc4733816063fc4647242fd9b071020.png

Index是一个计数的表计算,放在这个案例里,我们想要做的是对每一个国家/地区,对发生新冠以后的日期开始计数,第一天,第二天... 第n天。

第八步 修改列(X轴)

  1. 把原本在列上的Date拖入标记-详细信息
  2. 把标记类型改为线
  3. 把Number of Days 从度量拖入列

d4df1f9cc6afbc21ba8d23fef804094b.png

这时候得到了一条线的视图,别着急,我们离最后结果只有一步之遥啦。得到这个线的原因是表计算需要指定计算范围和方向作为计算依据,默认的计算依据表(横穿)在这里并不适用。

第九步 编辑表计算

右击在列上的Number of Days字段,选择计算依据-Date。可以这样理解这个表计算:对每一个国家/地区,沿着日期进行Index也就是计数表计算。

dd559d006594fd3837bc4cae958ee91e.png

第十步 修改Y值为7日平均值

右击在行上的Diffence字段,选择编辑表计算,在弹出的窗口选择移动计算,前6个值和当前值构成7天的移动窗口,同样的选择特定维度 日期 来确定计算依据。

c97afc3fda36a8c3018a07373a4e88cb.png

第九步 创建组来对比国家/地区

  1. 在维度上右击Country_Region 选择创建-组 这里我把美国作为一组,中国作为一组,其他国家归入其他。得到一个 Country_Region (组)
  2. 把Country_Region (组) 拉入标记-颜色,自定义颜色
  3. 把Country_Region (组) 拉入标记-标签 这里一个小技巧:把其他重命名为一个空白格,这样就只显示想对比的组了
  4. 简单的修改标题 横纵轴的名称,就得到了各国每日疫情发展图了。

7da82567b2b89fbc58fd7f1502db4d58.png

接下来你可以自行修改视图的配色格式,自定义Y轴的数值(比如下图就是累计病例计算),自定义日期起始的标准(比如FT现在这个版本是按7日平均值高于10,而不是我们定义的累计超过10起),来追踪自定义的每日疫情发展了。

0816c9b073d9166c39d230085f788367.gif
全黑风格

回到题图FT的风格的复刻,为了和它的统计口径一致。和基础版本不一样的地方在于Day 1起始日期的定义按7日平均值高于10,我也加入的一个小的中国数据集来提供一月的数据,我也把我的twbx文件放在这里,供你参考。

Covid-19 Cases.twbx
8.6M
·
百度网盘

你学会了吗?快自己动手操作起来吧。学生朋友可以选择免费的Tableau Public 完成一样的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值