先把效果圖放上來,酷炫壓場??赐瓯疚模憔湍茌p松實現這個動態效果,全程只需幾分鐘!
一、前言
現在,(賈赦、假射)假設你手頭有一堆數據,你很想把數據繪制到地圖上,再按時間動態展示?你會怎么辦?有什么思路?有什么軟件、網站可以用得上?
當你想繪制酷炫的動態圖,遙想著分享到朋友圈后,美滋滋地裝個逼,贏得評論里一片尖叫聲和小姐姐們崇拜的emoji,并順帶收割一波贊時,是不是只能拍桌子,被想象中高難度的操作嚇到,于是嘆氣道:“裝逼不是你想裝,想裝就能裝”,然后在excel里畫了個圈圈。
如果這時候我告訴你,其實,不用編程,沒有復雜操作,簡單上傳你的數據文件,拖曳幾下,幾分鐘就能實現上面的動態熱力圖,一切就是那么簡單、干脆、暴力,你會不會大驚從早到晚失色,驚呼這絕對不可能。
當然,你要是說你連數據都沒有,就想實現可視化圖,那......我只能說:“旁友,你很有想法嘛!跟我學做菜吧,學怎么在沒有米的情況煮出一鍋飯的那種?!?/p>
當然考慮到大家可能手頭一時沒有適合的數據集,或者有數據但沒有地址,或者有地址但沒有對應的經緯度,或者經緯度也有了但沒有時間,難以實現動態效果,或者壓根沒數據也不會爬蟲爬數據,但看到我開頭的那張GIF后,就是心里癢癢,想馬上上手搞個動態圖出來。
為避免大家用類似紅樓夢里的話,類似罵某類小片導演:“死促狹導演,一定浪上人的火來,他又不播了”的話來罵我,我會給出部分數據,供大家裝逼之用,哦不,是供大家學習之用!
湊個吉利,分享數據6666條,格式如圖:city-居住地;lng-經度;lat-緯度;time1-包含日期和時間(后續不用可不用管time2);Source和Target分別為轉發的起點和終點(原本是對應的微博用戶名,已替換成數字),因為在地圖上顯示時不包含傳播路線,所以只要看作每個點是以Target區分的就行,相當于特定的ID;最后兩列是每個用戶的被轉發數和粉絲數,用不用的上看情況。
福利一:微博轉發數據分享-1
鏈接:http://pan.baidu.com/s/1jIh3K9K密碼: sd25
當然如果你還是嫌不夠,還是欲求不滿,==,就想要全部數據(開頭的圖用了36000+條數據)。也許你打個賞、關注下,然后留下評論,我一高興就會發你的哦。
另外正好說下數據處理過程,此數據和《Gephi繪制微博轉發圖譜:以“@老婆孩子在天堂”為例》是同一數據,但是去掉了居住地為:“海外”、“其他”等部分,然后統計后發現只需獲取500條數據的經緯度(原始數據不含經緯度),雖然工作量減少了很多,但是500條經緯度其實也不少,你可以在:百度地圖坐標拾取系統里一條條手動查詢、復制粘貼。但顯然會花費不少時間,如果數據量更大,更不方便。
而從地址得到經緯度,這是每個想進行地圖可視化的人都必須面對的問題,所以這里再貼一個福利:
福利二:批量獲取經緯度數據
“上面輸入緯度,經度或地址地名關鍵詞,每行一條,每次最大120條”
在“導入任務”上方的表框里粘貼上120條居住地數據,然后點擊“導入任務”,便會開始自動查詢,完成后,重復幾次操作:復制粘貼120條。待全部數據獲取完畢,點擊“導出txt”,點擊鏈接,復制到txt或csv,excel就可以了,當然有了這些數據,還需要寫個小程序按照原始的3.6w+的居住地填充入對應的經緯度,此處先不展開,無非就是python讀取寫入csv。(所有這些都不需要你重新操作了,處理后的數據直接分享給你了,歡喜不)
二、BDP繪制動態熱力圖
前面廢話了那么多,大家估計都看煩了,其實是因為繪制過程真的太簡單,要不然完全沒內容可以寫了,到底多簡單,立馬開始。計時開始,看看你最后用了幾分鐘實現了這么酷炫的、可以發朋友圈裝逼的動圖可視化圖。
2.1 網上搜索:BDP個人版,注冊賬號
海致BDP在線數據圖表制作工具,免費使用,無需下載,無需編程,拖拽即可快速生成、制作數據圖表,簡單易上手。
2.2 上傳數據
點擊“數據源”,點擊“立即添加”,點擊“CSV上傳”,按照跳出的頁面,上傳本地對應的CSV文件,“逗號”分割,確定后,等待上傳成功后,并能看到數據,此處將“time1”列,設定為日期,否則后面動態展示時可能會出錯。
點擊下一步,改不改文件名,目錄,隨意,之后下一步,完成數據上傳:
2.3 新建圖表
點擊菜單欄右上角“新建圖表”,選擇“經緯度地圖”,確定
經度選擇上傳的CSV數據里的“lng”列,緯度選擇“lat”列,坐標系選擇為百度地圖,補充以前上文獲取經緯度數據也是基于百度地圖的,而非高德、谷歌、騰訊地圖,不同坐標體系經緯度數據不同,可能發生地圖上點的偏差。需要特別注意和區分,具體可百度,在此先不說明:
2.4 繪制熱力圖
右上角,將工作表中文件拖曳到圖層里,就能在地圖上加載出數據,非常簡單,有沒有!地圖的移動、放大都和平時用百度地圖的操作是一樣。不過這里會發現,將整個地圖移動到視圖中間時,下方的數據會無法顯示,將地圖上移后,又會出現,不知道什么原因,待解決:
接著在圖表右邊將圖表標題改為:“微博轉發熱力圖”;“圖表類型”選擇第二個,即熱力圖。之后就是隨意DIY了。改下熱力半徑,以可視化效果而定;選擇“時間動畫”;“時間粒度”:可按照小時,日,分鐘,秒等來展示;其他的“時間間隔”,“播放速度”都是可以自己設置的,這里就隨大家自己玩了:之后點擊進度條上的播放就能完成動態熱力圖了,具體效果可參看文章開頭,也留給大家自己上手實現了。
三、小結
本項目的數據算是現成的,但是在處理成最后動態可視化所需的格式過程中也是沒那么容易,尤其是需要另外獲取經緯度數據,但一步步下來,其實也沒那么難。
而可視化部分,市面上很多可以在上傳數據后,直接拖曳生成漂亮圖表的平臺或軟件,比如本文用到的BDP,比如付費的Tableau,還有其他未了解的網站,可以非常方便的進行可視化,還需要繼續挖掘更多的用途,進一步學習下。
截止目前,已用百度的Echarts繪制了《爬取張佳瑋138w+知乎關注者:數據可視化》中幾乎全部的圖表;
繼續用Echarts中的heatmap(日歷熱圖)展現了六年來老樹畫畫發布微博的情況,并用PIL庫進行多圖拼接:《老樹微博,三千詩與畫》;
用Gephi一則熱門微博的14層轉發網絡圖譜:《Gephi繪制微博轉發圖譜:以“@老婆孩子在天堂”為例》。