我用Excel做了一個美國颶風的動效軌跡圖!

Excel 美國 威力 數據分析不是個事兒 數據分析不是個事兒 2017-09-15

前幾天,美國“艾爾瑪”颶風肆虐,據說特朗普的別墅都被吹爛了!暫且不論此次颶風的威力和損失,相關颶風的信息其實都可以通過Hurricane & Tropical Cyclone Details網站查到。

正逢最近痴迷於研究excel的動效,聯想到大神方驥以前做的一個颶風圖,依葫蘆畫瓢做了一個,利用氣泡動效圖來描繪颶風的路徑,展現強度變化。

我用Excel做了一個美國颶風的動效軌跡圖!

操作步驟

1、素材準備

① 一張帶經緯線的美國·大西洋地圖。因為公共服務提供的經緯度並不精確,各大地圖工具都不帶經緯度。當初翻遍了網絡,在德克薩斯大學的地圖圖書館NHC Blank Tracking Charts,找到了這張地圖。

我用Excel做了一個美國颶風的動效軌跡圖!

②從Hurricane & Tropical Cyclone Details上下載Irma颶風的移動路徑數據,包括日期時間、經緯度、風力等。

我用Excel做了一個美國颶風的動效軌跡圖!

2、處理數據

經緯度、風速、風壓等去單位。

日期和時間要稍作處理轉換成Excel便於處理的日期數據。

時間間隔前期基本上都是每6小時的記錄一次數據,後期每3小時甚至每小時就記錄一次,這裡為了便於後期好處理,統一留下每6小時的數據。

我用Excel做了一個美國颶風的動效軌跡圖!

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())

我用Excel做了一個美國颶風的動效軌跡圖!

5、氣泡圖綁定數據源

我用Excel做了一個美國颶風的動效軌跡圖!

至此,就都搞定了,圖表中的文本框則可以通過鏈接單元格,直接從單元格當中獲取數據點的信息。

此外,這裡除了氣泡圖,圖表中還添加了一組柱形圖來展示風力,數據綁定的操作形式和上面氣泡圖如出一轍。

關於圖中動效卡頓,我估計是源數據有點問題,比如2017/9/7 15:00經緯度是20.4/69.7,下個時刻2017/9/7 21:00經緯度就成18.8/65.4,往回倒了,還是颶風自己會打轉或往回走一段?

總體思路就是這樣,這裡就不再對數據處理了。

我用Excel做了一個美國颶風的動效軌跡圖!

附上官方圖,是不是差不多嗯~

我用Excel做了一個美國颶風的動效軌跡圖!

相關推薦

推薦中...