1. 程式人生 > 實用技巧 >Python+視覺化工具,如何才能做出優美的動態圖表?

Python+視覺化工具,如何才能做出優美的動態圖表?

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

以下文章來源於菜J學Python ,作者J哥

前言

這次呢,我想講講地圖視覺化的內容,以前我也寫過用Python的內建庫繪製地圖,但總感覺不夠美觀。如何才能在短時間內製作漂亮的視覺化地圖呢,我覺得Python+視覺化工具是不錯的選擇。

以下動態視覺化地圖就是J哥親手繪製,展現了一段時間內廣州市企事業單位在網上商城採購商品的分佈及隨時間的變化。


接下來,將手把手教你如何繪製這個動態圖,您可在公眾號後臺回覆「kepler」獲取資料集進行測試。

資料準備

第一步,開啟並預覽一下資料集,共766條採購記錄,包含採購時間、採購單位和採購金額3個欄位。

1df=pd.read_excel('cc.xls',index=False)
2df.head()


第二步,根據採購單位欄位獲取經緯度,批量獲取經緯度的方法很多,詳情可參考「用Python評測三種批量查詢經緯度的方法,你pick哪一種?」。

 1defgaode(addr):
 2para={
 3'key':'你的',
 4'address':addr
 5}
 6url='https://restapi.amap.com/v3/geocode/geo?'
 7req=requests.get(url,para)
 8req=req.json()
 9print('-'*30)
10ifreq['status']=='1':
11iflen(req['geocodes'])>0:
12m=req['geocodes'][0]['location']
13print(m)
14else:
15print("None")
16m=""
17else:
18print("None")
19
20returnm
21gaode(addr="廣州")


應用以上函式並預覽資料

1df['lat_lon']=df['buyer'].apply(gaode)
2df.head()


第三步,對經緯度欄位分列並存儲為csv格式。

1df["lat"]=df["lat_lon"].str.split(',',expand=True)[1]
2df["lon"]=df["lat_lon"].str.split(',',expand=True)[0]
3df=df.drop('lat_lon',axis=1)
4df.to_csv('cc.csv',index=False)


簡單三步資料準備完畢,資料預覽如下:

資料視覺化

將以上資料視覺化到地圖中的方法也有很多,比如Ecahrts、高德地圖視覺化平臺、地圖無憂等,本次主要介紹kepler.gl。

kepler.gl是由Uber開發的進行空間資料視覺化的開源工具,是Uber內部進行空間資料視覺化的預設工具,通過其面向Python開放的介面包keplergl,我們可以在 jupyter notebook 中通過書寫Python程式碼的方式傳入多種格式的資料,在其嵌入notebook的互動視窗中使用其內建的多種豐富的空間資料視覺化功能。可以讓你不需要任何程式設計基礎,即可實現資料地圖的視覺化。Kepler.gl 支援的資料格式:CSV、GeoJson 和Json。

一、Jupyter中視覺化

1.本地安裝

pipinstallkeplergl

注:Windows使用者建議conda安裝,否則很可能報錯。

2.載入地圖和資料

二、線上網站中視覺化(推薦)

當然,你也可以直接在kepler官網中上傳資料操作,但官網速度較慢,建議用如下網站操作:

http://map.guihuayun.com/     #規劃雲網站搭的一個映象

開啟網站後,首先將cc.csv資料集新增進來。

新增好資料後,可以根據自己的喜好進行圖示顏色、大小、地圖樣式等引數設定。

1.圖示設定

2.地圖樣式更改

3.新增城市輪廓

城市輪廓資料可以在DATAV.GeoAtlas網站進行獲取。

4.上傳輪廓資料

5.新增時間軸

OK,大功告成!

總結


當然,我們還可以利用同樣的資料集製作成熱力圖、3D地圖等。關鍵是,如此便捷實用又美觀的地圖視覺化工具竟然免費!感覺它比目前市面上很多付費工具還要給力。