(數據科學學習手札90)Python+Kepler.gl輕松制作時間輪播地圖


本文示例代碼及數據已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes

1 簡介

  Kepler.gl作為一款強大的開源地理信息數據可視化工具,可以幫助我們輕松制作針對大規模矢量數據的可視化作品,從而輔助數據分析工作。

  Kepler.gl制作常規地圖非常簡單方便,稍微摸索一下儀表盤界面就可以get到用法,但有些特殊的地圖則需要額外對數據進行處理或使用Kepler.gl中的一些隱藏功能,譬如之前寫過的(數據科學學習手札85)Python+Kepler.gl輕松制作酷炫路徑動畫中介紹過的動態路徑地圖。本文將要介紹的時間輪播地圖也是一種比較特殊的地圖,下面我們就將結合實際例子進行介紹。

2 Python+Kepler.gl制作時間輪播地圖

2.1 實例:Uber出行乘客上下車信息

  我們以Uber官方提供的2015年某日紐約乘客上下車數據為例,對應文章開頭Github倉庫中的data.csv,關於Python+Kepler.gl的環境配置可以回顧(數據科學學習手札85)Python+Kepler.gl輕松制作酷炫路徑動畫中的相關內容。

  首先我們讀入data.csv數據:

import pandas as pd
from keplergl import KeplerGl

raw = pd.read_csv('data.csv')
raw.head()
圖1

  需要注意我們的數據中除了必要的經緯度點信息之外,包含了tpep_pickup_datetimetpep_dropoff_datetime兩列日期格式的數據,這是繪制日期輪播地圖的關鍵,即我們的數據集中針對每行數據記錄必須有與之相對應的時間信息。

  數據准備完畢,使用下列代碼向外部導出Kepler.gl對應的html文件,因為所有視覺元素我們都單獨手動調整,這里只需要將目標數據嵌入html文件即可:

map1 = KeplerGl(height=800, data={'layer1': raw}) # 生成Kepler.gl網頁
map1.save_to_html(file_name='時間輪播地圖示例1.html', data={'layer1': raw}) # 導出網頁

  在外部打開前面導出的html文件,初始界面如圖2:

圖2

  首先刪除掉側邊欄Kepler.gl自動識別創建出的全部圖層,我們自己手動創建所需的圖層,以OD線為例:

圖3
圖4

  接着根據數據本身屬性進行適當的視覺元素的調整,這部分看個人喜好,具體步驟略過:

圖5

  接下來到最重要的步驟,打開左上角的篩選面板:

圖6

  點擊Add Filter,選擇想要作為時間輪播依據信息的字段:

圖7

  地圖右下角隨即出現時間輪播部件:

圖8

  可以在時間輪播部件中設置時間窗口跨度、播放速度等,下面是我制作出的效果,因為動圖錄制幀數不宜太高,實際比動圖中要流暢很多,你也可以自己自由探索:

圖9

  對於其他格式的數據譬如GeoJSON,同樣適用,只需要屬性表中一定存在時間類型信息即可,以上就是本文的全部內容,歡迎在評論區與我們進行討論。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM