很多網友想知道這個隨時間變化的新型肺炎確診病例的形狀地圖是怎麼做的,我們今天詳細介紹一下製作過程。
數據準備
頭條的疫情地圖提供數據源,我們可以直接取過來作為我們的數據源:
用谷歌瀏覽器檢查,到控制檯中找到areaData,這個areaData就是我們要找的數據源,不過不能直接複製,需要一個用控制檯命令複製出json數據:
在這個對象後面的數據上右鍵後出現Store as global variable,點擊一下左鍵:
下面的“>”後面會提示:
我們在下面的“>”後面輸入控制檯命令,然後回車
copy(temp1)
這樣JSON數據就複製好了,我們到打開的Power Query編輯器中,粘貼到空白查詢裡就可以開始後續的處理了。
剛粘貼好是文本格式,我們在分析中選擇JSON就可以得到想要的數據集:
點擊JSON後是這樣的結果:
我們想要的數據在這個記錄的provinces名稱下,我們點擊後面的list就會得到一個記錄列表:
然後我們轉換成表格,展開記錄:
展開後還有兩個列表列,一個是根據城市劃分的當天的病例數據,一個是時間序列的省份的病例數據,我們要做的隨時間變化形狀地圖,需要的是時間序列數據,保留id,name,series三列,展開時間序列數據這一列:
最後調整一下數據類型,id列要設置成整數,後面形狀地圖會用到,全部設置好就可以加載數據了。
形狀地圖
數據加載之後我們添加一個形狀地圖,用id創建,默認的是美國地圖,我們要顯示中國地圖就要再做些準備工作。
Power BI Desktop支持的是topojson格式的地圖,JSON格式地圖有兩種格式:
- GeoJSON
- TopoJSON
TopoJSON格式的地圖文件小,這也是Power BI支持這種格式的主要原因。Echarts用的就是GeoJSON格式地圖,網上有很多資源,那麼能不能把GeoJSON轉換成TopoJSON格式呢?我們需要一個網站來實現在線轉換:
我們在這個網站中打開GeoJSON格式的地圖:
這個地圖的索引用的是兩位行政區劃編碼,和我們的數據相吻合,而漢語的名稱就不一定完全一致,所以作圖時推薦使用行政區劃編碼。另存後保存的文件是map.topojson,我們在Power BI Desktop中直接添加這個地圖就好了。
已經可以顯示中國地圖了,我們還需要進行一下顏色的設置:
因為我們的數據是時間按序列數據,要顯示其中一天的數據,我們要在篩選的狀態下進行設置。到這裡我們的形狀地圖就做好了。
Play Axis
我們之前就講過的播放功能的視覺對象。
用date數據來播放:
已經可以播放了,接下來要做的就佈局調整
卡片圖顯示日期和數據
用卡片圖顯示日期和時間,調整好大小、位置、顏色就可以錄製GIF了
閱讀更多 EXCEL數據處理與分析 的文章