<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你用Python+可視化工具制作漂亮地圖

          共 2154字,需瀏覽 5分鐘

           ·

          2020-11-28 23:26


          大家好,我是J哥。


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


          以下動態(tài)可視化地圖就是J哥親手繪制,展現(xiàn)了一段時間內(nèi)廣州市企事業(yè)單位在網(wǎng)上商城采購商品的分布及隨時間的變化。



          接下來,J哥將手把手教你如何繪制這個動態(tài)圖,您可在公眾號后臺回復(fù)「cc」獲取數(shù)據(jù)集進行測試。


          數(shù)據(jù)準(zhǔn)備


          第一步,打開并預(yù)覽一下數(shù)據(jù)集,共766條采購記錄,包含采購時間、采購單位和采購金額3個字段。
          1df?=?pd.read_excel('cc.xls',index=False)
          2df.head()


          第二步,根據(jù)采購單位字段獲取經(jīng)緯度,批量獲取經(jīng)緯度的方法很多,詳情可參考J哥往期原創(chuàng)文章「用Python評測三種批量查詢經(jīng)緯度的方法,你pick哪一種?」。
           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="廣州")

          應(yīng)用以上函數(shù)并預(yù)覽數(shù)據(jù)

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

          ???長這樣:



          第三步,對經(jīng)緯度字段分列并存儲為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)

          簡單三步數(shù)據(jù)準(zhǔn)備完畢,數(shù)據(jù)預(yù)覽如下


          數(shù)據(jù)可視化


          將以上數(shù)據(jù)可視化到地圖中的方法也有很多,比如Ecahrts、高德地圖可視化平臺、地圖無憂等,本次主要介紹kepler.gl

          kepler.gl是由Uber開發(fā)的進行空間數(shù)據(jù)可視化的開源工具,是Uber內(nèi)部進行空間數(shù)據(jù)可視化的默認工具,通過其面向Python開放的接口包keplergl,我們可以在 jupyter notebook 中通過書寫Python代碼的方式傳入多種格式的數(shù)據(jù),在其嵌入notebook的交互窗口中使用其內(nèi)建的多種豐富的空間數(shù)據(jù)可視化功能。可以讓你不需要任何編程基礎(chǔ),即可實現(xiàn)數(shù)據(jù)地圖的可視化。Kepler.gl 支持的數(shù)據(jù)格式:CSV、GeoJson 和Json。

          一、Jupyter中可視化

          1.本地安裝

          pip?install?keplergl

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

          2.加載地圖和數(shù)據(jù)


          二、在線網(wǎng)站中可視化(推薦)

          當(dāng)然,你也可以直接在kepler官網(wǎng)上傳數(shù)據(jù)操作,但官網(wǎng)速度較慢,建議用如下網(wǎng)站操作:

          http://map.guihuayun.com/ #規(guī)劃云網(wǎng)站搭的一個鏡像

          打開網(wǎng)站后,首先將cc.csv數(shù)據(jù)集添加進來。


          添加好數(shù)據(jù)后,可以根據(jù)自己的喜好進行圖標(biāo)顏色、大小、地圖樣式等參數(shù)設(shè)置。

          1.圖標(biāo)設(shè)置




          2.地圖樣式更改


          3.添加城市輪廓

          城市輪廓數(shù)據(jù)可以在DATAV.GeoAtlas網(wǎng)站進行獲取。


          4.上傳輪廓數(shù)據(jù)


          5.添加時間軸


          OK,大功告成!

          總結(jié)


          當(dāng)然,我們還可以利用同樣的數(shù)據(jù)集制作成熱力圖、3D地圖等。關(guān)鍵是,如此便捷實用又美觀的地圖可視化工具竟然免費!感覺它比目前市面上很多付費工具還要給力。



          PS公號內(nèi)回復(fù)「Python」即可進入Python 新手學(xué)習(xí)交流群,一起?100 天計劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點一下如果感覺文章內(nèi)容不錯的話,記得分享朋友圈讓更多的人知道!

          神秘禮包獲取方式

          識別文末二維碼,回復(fù):1024

          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青娱乐亚| 亚洲ⅴ在线 | 欧美日韩亚洲不卡 | 国产女人18毛片水18精品变态 | 午夜精品成人 |