我用Excel做了一個美國颶風的動效軌跡圖!
前幾天,美國「艾爾瑪」颶風肆虐,據說特朗普的別墅都被吹爛了!暫且不論此次颶風的威力和損失,相關颶風的信息其實都可以通過Hurricane & Tropical Cyclone Details網站查到。
正逢最近痴迷於研究excel的動效,聯想到大神方驥以前做的一個颶風圖,依葫蘆畫瓢做了一個,利用氣泡動效圖來描繪颶風的路徑,展現強度變化。
操作步驟
1、素材準備
① 一張帶經緯線的美國·大西洋地圖。因為公共服務提供的經緯度並不精確,各大地圖工具都不帶經緯度。當初翻遍了網路,在德克薩斯大學的地圖圖書館NHC Blank Tracking Charts,找到了這張地圖。
②從Hurricane & Tropical Cyclone Details上下載Irma颶風的移動路徑數據,包括日期時間、經緯度、風力等。
2、處理數據
經緯度、風速、風壓等去單位。
日期和時間要稍作處理轉換成Excel便於處理的日期數據。
時間間隔前期基本上都是每6小時的記錄一次數據,後期每3小時甚至每小時就記錄一次,這裡為了便於後期好處理,統一留下每6小時的數據。
3、繪製氣泡圖
將上面的地圖插入到表格中,然後在上面繪製一張氣泡圖,氣泡圖的X軸數據就是經度數據,Y軸數據就是緯度數據,氣泡大小取自風力大小的數值。
設置繪圖區格式,根據經緯度坐標的讀數來設置氣泡圖中坐標軸的最大值和最小值,並且使坐標間隔和地圖上的經緯度間隔一致,比如這裡間隔是5,這樣可以保證氣泡圖繪製的數據點與地圖中實際的經緯度相匹配。
拖拽移動圖表繪圖區的邊框,使它與底層大西洋地圖中的坐標軸線相互重合。然後隱去軸數據,邊框什麼的都設置「無」。
4、製作動效
【思路】
要想實現軌跡的動效,這裡可以使用滑動條控制項來控制時間,每滑動一次,時間就增加6小時。
滑動條所鏈接的單元格把數據傳遞給圖表左側的表格區域中,然後通過對時間點的查詢得到相應的經緯度數據和風力風壓數據。同時再由這個時間數據生成圖表的兩組數據源,由此構造形成整個控制鏈,並完成滑動條對圖表的最終控制。
進一步,我想實現滑動條的自動控制,這裡則需要通過VBA代碼來實現,讓圖表自動播放。
【操作】
1、用VBA寫兩個宏,一個控制啟動,一個控制停止。
2、繪製4個控制項,分別代表啟動、停止、循環、滑動條,指定上述宏。
3、滑動條控制項格式指定左側單元格,左側單元格會記錄滑動數據,上方data & time調用此單元格數據。
4、準備動態數據
為實現以上動態效果,其實在氣泡圖中準備了兩組數據。一組顯示當前時間點之前颶風所走過的所有路徑點,另一組則標記當前時間點颶風所在位置。
這裡需要用到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())
5、氣泡圖綁定數據源
至此,就都搞定了,圖表中的文本框則可以通過鏈接單元格,直接從單元格當中獲取數據點的信息。
此外,這裡除了氣泡圖,圖表中還添加了一組柱形圖來展示風力,數據綁定的操作形式和上面氣泡圖如出一轍。
關於圖中動效卡頓,我估計是源數據有點問題,比如2017/9/7 15:00經緯度是20.4/69.7,下個時刻2017/9/7 21:00經緯度就成18.8/65.4,往回倒了,還是颶風自己會打轉或往回走一段?
總體思路就是這樣,這裡就不再對數據處理了。
我知道,這張模板藏不住了,獻給大家了(大家這麼多收藏不點贊,良心不會痛么)
https://pan.baidu.com/s/1dEJYXqx
附上官方圖,是不是差不多嗯~
推薦閱讀:
※技巧——新建日期表
※2017上半年總結:數據分析轉行成功
※柱形圖,百分比堆積柱形圖,簇狀柱形圖等圖表統統「一網打盡」!
※【學習心法】一張圖了解數據分析/挖掘的精髓
※大數據精準營銷|如何與用戶談一場不分手的戀愛?
TAG:MicrosoftExcel | 数据可视化 | 数据分析 |