大家好,這次呢,我想講講地圖可視化的內容,以前我也寫過用Python的內置庫繪制地圖,但總感覺不夠美觀,如何才能在短時間內制作漂亮的可視化地圖呢,我覺得Python+可視化工具是不錯的選擇,
以下動態可視化地圖就是我親手繪制,展現了一段時間內廣州市企事業單位在網上商城采購商品的分布及隨時間的變化,

接下來,我將手把手教你如何繪制這個動態圖,想實操學習,可在文末獲取資料集,如果您對本文感興趣,歡迎點贊、在看和分享,
資料準備
第一步,打開并預覽一下資料集,共766條采購記錄,包含采購時間、采購單位和采購金額3個欄位,
1df = pd.read_excel('cc.xls',index=False)
2df.head()

第二步,根據采購單位欄位獲取經緯度,批量獲取經緯度的方法很多
1def gaode(addr):
2 para = {
3 'key':'你的',
4 'address':addr
5 }
6 url = 'https://restapi.amap.com/v3/geocode/geo?'
7 req = requests.get(url,para)
8 req = req.json()
9 print('-' * 30)
10 if req['status']=='1':
11 if len(req['geocodes']) > 0:
12 m = req['geocodes'][0]['location']
13 print(m)
14 else:
15 print("None")
16 m = ""
17 else:
18 print("None")
19
20 return m
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.本地安裝
pip install keplergl
注:Windows用戶建議conda安裝,否則很可能報錯,
2.加載地圖和資料

二、在線網站中可視化(推薦)
當然,你也可以直接在kepler官網中上傳資料操作,但官網速度較慢,建議用如下網站操作:
http://map.guihuayun.com/ #規劃云網站搭的一個鏡像
打開網站后,首先將cc.csv資料集添加進來,

添加好資料后,可以根據自己的喜好進行圖示顏色、大小、地圖樣式等引數設定,
1.圖示設定

2.地圖樣式更改

3.添加城市輪廓
城市輪廓資料可以在DATAV.GeoAtlas網站進行獲取,

4.上傳輪廓資料

5.添加時間軸****

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


資料獲取
資料已打包,獲取方法有兩種:
- 方式一、發送如下圖片至微信,長按識別,回復:地圖;
- 方式二、微信搜索公眾號:Python學習與資料挖掘,后臺回復:地圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342177.html
標籤:其他
下一篇:java人事考勤打卡小程式原始碼
