用Excel 3D Maps画地图是种怎样的体验

最近,我看了一篇文章,叫 【Python终于干掉了Excel】,后来发现是个卖python课程的,但不免腹诽:Excel是个被严重低估的工具,虽有许多槽点,但 Excel是我见过最方便的数据可视化工具。

COVID-19全球形式仍不明朗,今天,我们就来看一下,如何使用Excel的3D Maps功能,3分钟制作COVID-19疫情地图。 Excel的3D Maps功能无需编程,即可快速制作各种类型的地图,而且可以根据时间序列生成动画。这里先放效果图:

covid.gif

准备

  1. 软件
  • 我们需要 Microsoft Office 2016, 2013版的需要安装Power Map插件
  • 如果这个功能找不到或用不了,搜索引擎帮你忙
  1. 数据
  • 最最原始的数据是丁香园的
  • 我这里使用的是github上BlankerL/DXY-COVID-19-Data的数据
  • 此外,我对上述的数据进行了一定程度的清洗和整理和补充
  • 数据在文末有提供下载(数据下载于4/14/2020)

数据结构

在作图之前,我们需要考虑我们的数据需要怎么样的结构,或者简单点,我们需要哪些数据,而这些数据将以什么形式呈现出来(无论做什么图,我们都需要思考这个问题)

以我之前展示的动图为例, 我们至少需要以下三类数据

  • 国家/地区的名字
  • 疫情数据
  • 疫情数据对应的时间

名字 如果我们需要在地图上标注一个国家的疫情,那么,毋庸置疑,我们需要国家的名字,其实有名字你还远远不够,在真正作图的时候,我们使用的不是名字,而是那个国家的国境线(经纬度坐标),把边境线的这些点一个个画出来,就是国家的轮廓了,而万幸的是,3D Maps这个功能能识别不同语言的地名,如 浙江省,Zhejiang上海 等,他会自动找出这个名字对应的国家,省份,甚至城市,并在地图上画出轮廓线

疫情数据 为了标注疫情的发展态势,我们当然需要疫情数据,可以是确诊数,死亡数,病死率等等。那么,我们需要以怎么样的形式将这个数据呈现在地图上,而在3D Maps中具体操作又是什么?这部分会在具体操作环节详细说明。

时间 如果你只想做静态的图片,时间可以不需要。但如果你需要制作疫情的动态变化地图,我们必须有不同时间,不同地点的疫情数据。动画的原理就是把一张张照片按顺序一张一张播放,我们的大脑由于视觉残留的原理,就会觉得他是连续的。所以我们需要一个时间切片下每个地区的疫情数据,并利用时间这个标签,把他们排列起来。

以下就是一个数据的demo

Name confirmedCount time
中国 1423 1/27/2020
新加坡 4 1/27/2020
日本 3 1/27/2020
中国 2714 1/28/2020
新加坡 5 1/28/2020
日本 7 1/28/2020

3D Maps作图

下面就是真实数据的截图,共56000多条数据,每条数据包含了一个国家或地区的疫情,数据截止于4月14日,值得注意的是数据的最后一列是我添加的,叫 confirmedCount_log,因为有些国家疫情严重,累计确诊数很高,而大多数国家的确诊数远远低于该值,没有可比性,所以我对confirmedCount这一列作为log2处理,生成新的一列confirmedCount_log,这样数据的差距被缩小,有利于我们可视化。

image.png

载入数据

我们首先选中所有数据,最好是用shift 组合键选中有数据的区域,然后单击菜单栏中的Insert - 3D Maps

这时,就会弹出3D Maps 的窗口,我们需要关注右边的设置,如图:

image.png

这个侧边栏负责了几乎所有今天需要的操作。他覆盖了以下部分:

  • Data
  • Filters
  • Layer Options

Data
这部分又包含了:

  • 数据显示方式
  • 位置指定
  • 值指定
  • 分类指定
  • 时间指定

数据显示方式 我们这里选择第5个,不过我也建议大家试试其他的,看看效果。

位置指定 指定数据中,哪一列是你的国家名,这里我们选择国家英文名

值指定 指定我们要可视化的数据,这里是confirmedCount_log,结合刚才选中的数据显示方式,就可以对确诊数不同的国家梯度着色。

分类指定 分类指定可以对不同的分类使用不同的颜色区分,如图,我把continentEnglishName指定为分类,那么3D Maps就会用不同的颜色标注不同的洲。当然这里我们不需要这么做,我们仅依据疫情标注颜色深浅,这里不指定分类

image.png

时间指定 指定时间,为我们的动画做准备。所以我们指定updateTime为时间

Filters
它就是一个过滤器,所有的数据都会先通过这个过滤器再画图,比如,我设置了continentEnglishName,选中非洲和亚洲,如图,就只有这两个洲的国家被着色了。你在这里可以动态地选择大洲,就不需要提前筛选数据再画图,很方便。当然,如果你需要画全球疫情,那这个也不需要设置

image.png

Layer Options
这里可以指定颜色,透明度等等,比如这里我们使用红色,他们3D Maps就会按照确诊数建立红色的颜色梯度。

image.png

默认情况下,3D Maps展示的是球形地图,为了更好的视野,菜单栏中的Flat Map可能是你需要的

至此,你离成功只差最后的一个播放键!

在进度条的右侧,还有一个设置按钮,你可以指定播放速度,动画效果,限定时间(疫情时间)等

image.png

但是,这样生成的地图仅用于个人的数据分析和可视化,不得用于任何官方用途,因为这里的中国地图是不完整的,不被我国承认 解决方案是用Excel读入正确的中国地图的shape文件(.shp),这里就不介绍了。如果使用shp文件,推荐大家使用python或R来操作和作图,比较灵活。

至此,教程结束

PS:新冠肺炎疫情,牵动着我们每个人的心,也切实影响着我们的生活,毫无疑问,我国的疫情防控十分出色,但这不是我们松懈的理由。这几日在黑龙江、广东、山东、辽宁和四川也相继发生了本地传播病例,让我们担心,疫情会不会卷土重来。新加坡近日也单日确诊超过1000例以上,让我们思考,到底如何才能确保安全,防控的漏洞在哪里。看到自己所在城市,大家开心放松的生活和工作,我不由害怕这样的安居乐业再次受到破坏。但无论如何,我们所能做的就是做好自身防护,配合一些必要的检疫措施,团结信任。在希望疫情早日结束的同时,我们也需要做好持久战的准备。


所有人 健康快乐

shawn
2020-04-18

————

微信公众号“肖恩札记”后台回复COVID,疫情数据获取

你可能感兴趣的:(用Excel 3D Maps画地图是种怎样的体验)