Excel有個Power Map的功能,5分鐘就能搞定一個簡單的數(shù)據(jù)地圖。
第一步:下載安裝Power Map Preview for Excel 2013,下載完后可在工具欄的【插入】選項卡中找到Power Map。
第二步:準備數(shù)據(jù)。這里我準備了一組省市的銷售額和利潤數(shù)據(jù),希望能夠在地圖上顯示各個省的銷售額分布,以及每個城市的銷售/利潤情況。
選擇數(shù)據(jù),啟動Power Map并新建演示。
第三步:繪圖
基于以上的目的,在這里我要建立兩個圖層,一個用于展示各省的銷售額分布,另一個用于每個城市的銷售/利潤對比。
圖層一:省銷售額
區(qū)域選擇省,地理和地圖級別選擇省
選擇區(qū)域可視化的圖表,數(shù)據(jù)展示銷售額。
設(shè)置中可以修改顏色和色階
圖層二:城市銷售利潤
區(qū)域選擇城市,地理和地圖級別選擇城市
選擇簇狀柱形圖的圖表,數(shù)據(jù)展示銷售額和利潤。
第四步:播放展示效果
如果是復(fù)雜的地圖比如流向地圖、動態(tài)地圖需要寫VBA開發(fā),比如下圖這張美國颶風(fēng)的動效軌跡圖
1、素材準備
① 一張帶經(jīng)緯線的美國·大西洋地圖。因為公共服務(wù)提供的經(jīng)緯度并不精確,各大地圖工具都不帶經(jīng)緯度。當(dāng)初翻遍了網(wǎng)絡(luò),在德克薩斯大學(xué)的地圖圖書館NHC Blank Tracking Charts,找到了這張地圖。
②從Hurricane & Tropical Cyclone Details上下載Irma颶風(fēng)的移動路徑數(shù)據(jù),包括日期時間、經(jīng)緯度、風(fēng)力等。
2、處理數(shù)據(jù)
經(jīng)緯度、風(fēng)速、風(fēng)壓等去單位。
日期和時間要稍作處理轉(zhuǎn)換成Excel便于處理的日期數(shù)據(jù)。
時間間隔前期基本上都是每6小時的記錄一次數(shù)據(jù),后期每3小時甚至每小時就記錄一次,這里為了便于后期好處理,統(tǒng)一留下每6小時的數(shù)據(jù)。
3、繪制氣泡圖
將上面的地圖插入到表格中,然后在上面繪制一張氣泡圖,氣泡圖的X軸數(shù)據(jù)就是經(jīng)度數(shù)據(jù),Y軸數(shù)據(jù)就是緯度數(shù)據(jù),氣泡大小取自風(fēng)力大小的數(shù)值。
設(shè)置繪圖區(qū)格式,根據(jù)經(jīng)緯度坐標的讀數(shù)來設(shè)置氣泡圖中坐標軸的最大值和最小值,并且使坐標間隔和地圖上的經(jīng)緯度間隔一致,比如這里間隔是5,這樣可以保證氣泡圖繪制的數(shù)據(jù)點與地圖中實際的經(jīng)緯度相匹配。
拖拽移動圖表繪圖區(qū)的邊框,使它與底層大西洋地圖中的坐標軸線相互重合。然后隱去軸數(shù)據(jù),邊框什么的都設(shè)置“無”。
4、制作動效
【思路】
要想實現(xiàn)軌跡的動效,這里可以使用滑動條控件來控制時間,每滑動一次,時間就增加6小時。
滑動條所鏈接的單元格把數(shù)據(jù)傳遞給圖表左側(cè)的表格區(qū)域中,然后通過對時間點的查詢得到相應(yīng)的經(jīng)緯度數(shù)據(jù)和風(fēng)力風(fēng)壓數(shù)據(jù)。同時再由這個時間數(shù)據(jù)生成圖表的兩組數(shù)據(jù)源,由此構(gòu)造形成整個控制鏈,并完成滑動條對圖表的最終控制。
進一步,我想實現(xiàn)滑動條的自動控制,這里則需要通過VBA代碼來實現(xiàn),讓圖表自動播放。
【操作】
1、用VBA寫兩個宏,一個控制啟動,一個控制停止。
2、繪制4個控件,分別代表啟動、停止、循環(huán)、滑動條,指定上述宏。
3、滑動條控件格式指定左側(cè)單元格,左側(cè)單元格會記錄滑動數(shù)據(jù),上方data & time調(diào)用此單元格數(shù)據(jù)。
4、準備動態(tài)數(shù)據(jù)
為實現(xiàn)以上動態(tài)效果,其實在氣泡圖中準備了兩組數(shù)據(jù)。一組顯示當(dāng)前時間點之前颶風(fēng)所走過的所有路徑點,另一組則標記當(dāng)前時間點颶風(fēng)所在位置。
這里需要用到LOOKUP函數(shù),并調(diào)用data & time單元格數(shù)據(jù)。
第一組數(shù)據(jù)選取小于等于當(dāng)前時間點的所有數(shù)據(jù),并將其他數(shù)據(jù)點設(shè)為#N/A。
=IF($A9<=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())
第二組選取與當(dāng)前時間相匹配的數(shù)據(jù),其他數(shù)據(jù)也設(shè)為#N/A。這里,#N/A不會在圖表中顯示數(shù)據(jù)點。
=IF(A9=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())
5、氣泡圖綁定數(shù)據(jù)源
至此,就都搞定了,圖表中的文本框則可以通過鏈接單元格,直接從單元格當(dāng)中獲取數(shù)據(jù)點的信息。
此外,這里除了氣泡圖,圖表中還添加了一組柱形圖來展示風(fēng)力,數(shù)據(jù)綁定的操作形式和上面氣泡圖如出一轍。
聯(lián)系客服