还记得美国肆虐的飓风“艾尔玛”吗?
对,就是把特朗普的别墅吹上天的那个!
最近正好痴迷于研究数据地图,参考大神方骥的方法做了一个,利用气泡动效图来描绘飓风的路径,并展现出强度的变化。
图就是我用Excel绘制出的飓风“艾尔玛”的移动轨迹图。
制作步骤如下:
1、素材准备及查找
1)一张带经纬线的美国·大西洋地图
注意,地图需要带经纬线!(大多公共服务提供的经纬度并不精确,而且各大地图工具通常不带经纬度)
该图取自德克萨斯大学的地图图书馆NHC Blank Tracking Charts
2)从Hurricane & Tropical Cyclone Details上下载Irma飓风的移动路径数据,包括日期时间、经纬度、风力等。
2、数据信息前处理
①将经纬度、风速、风压等数据去掉单位;日期和时间要稍作处理转换成Excel便于处理的格式(当然,你高兴就好)。
②在数据素材中,时间间隔前期基本上都是每6小时的记录一次数据,后期每3小时甚至每小时就记录一次,而这里为了便于后期好做处理,统一留下了每6小时的数据(当然,还是你开心就好)。
3、绘制气泡图
①将上面的地图插入到表格中,然后在上面绘制一张气泡图,气泡图的X轴为经度,Y轴为纬度,气泡大小取自风力大小的数值。
②设置绘图区格式,根据经纬度坐标的读数来设置气泡图中坐标轴的最大值和最小值,并且使坐标间隔和地图上的经纬度间隔一致,比如这里间隔是5,这样可以保证气泡图绘制的数据点与地图中实际的经纬度相同。
③拖拽移动图表绘图区的边框,使它与底层大西洋地图中的坐标轴线相互重合。然后隐去轴数据,边框什么的都设置“无”。
4、制作动效
要想实现轨迹的动效,可以使用滑动条控件来控制时间,每滑动一次,时间就增加6小时。滑动条所链接的单元格把数据传递给图表左侧的表格区域中,然后通过对时间点的查询得到相应的经纬度数据和风力风压数据。同时再由这个时间数据生成图表的两组数据源,由此构造形成整个控制链,并完成滑动条对图表的最终控制。
进一步,如果我想实现滑动条的自动控制,这里则需要通过VBA代码来实现,让图表自动播放。
具体操作如下:
①用VBA写两个宏,一个控制启动,一个控制停止。
②绘制4个控件,分别代表启动、停止、循环、滑动条,指定上述宏。
③滑动条控件格式指定左侧单元格,左侧单元格会记录滑动数据,上方data & time调用此单元格数据。
④准备动态数据
为实现以上动态效果,其实在气泡图中准备了两组数据。一组显示当前时间点之前飓风所走过的所有路径点,另一组则标记当前时间点飓风所在位置。
这里需要用到LOOKUP函数,并调用data & time单元格数据。
第一组数据选取小于等于当前时间点的所有数据,并将其他数据点设为#N/A。
=IF($A9<=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())
第二组选取与当前时间相匹配的数据,其他数据也设为#N/A。这里,#N/A不会在图表中显示数据点。
=IF(A9=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())
⑤气泡图绑定数据源
图表中的文本框可以通过链接单元格,直接从单元格当中获取数据点的信息。
至此,动效轨迹图已经搞定!
此外,在这里,除了气泡图,在图表中我添加了一组柱形图来展示风力,数据绑定的操作和上面气泡图一样。
(关于图中的动效卡顿,估计是源数据有点问题,比如2017/9/7 15:00经纬度是20.4/69.7,下个时刻2017/9/7 21:00经纬度就成18.8/65.4,往回倒了,还是飓风自己会打转或往回走一段?)
好了,总体思路就是这样!
附上官方图,差不多是这样~
这里把模板也贡献给大家!
搜索公众号“数据分析不是个事儿”,后台回复“飓风”获取所有干货资料!
一起来聊聊数据处理的那些事儿吧!
网友评论