Python+Kepler.gl实现时间轮播地图过程解析


Posted in Python onJuly 20, 2020

前言

1 简介

Kepler.gl作为一款强大的开源地理信息数据可视化工具,可以帮助我们轻松制作针对大规模矢量数据的可视化作品,从而辅助数据分析工作。

Kepler.gl制作常规地图非常简单方便,稍微摸索一下仪表盘界面就可以get到用法,但有些特殊的地图则需要额外对数据进行处理或使用Kepler.gl中的一些隐藏功能,比如之前写过的Python+Kepler.gl轻松制作酷炫路径动画中介绍过的动态路径地图。本文将要介绍的「时间轮播地图」也是一种比较特殊的地图,下面我们就将结合实际例子进行介绍。

2 Python+Kepler.gl制作时间轮播地图

2.1 实例:Uber出行乘客上下车信息

我们以Uber官方提供的2015年某日纽约乘客上下车数据为例,对应文章开头Github仓库中的data.csv,关于Python+Kepler.gl的环境配置可以回顾Python+Kepler.gl轻松制作酷炫路径动画中的相关内容。

首先我们读入data.csv数据:

import pandas as pd
from keplergl import KeplerGl

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

Python+Kepler.gl实现时间轮播地图过程解析

需要注意我们的数据中除了必要的经纬度点信息之外,包含了tpep_pickup_datetime与tpep_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:

Python+Kepler.gl实现时间轮播地图过程解析

首先删除掉侧边栏Kepler.gl自动识别创建出的全部图层,我们自己手动创建所需的图层,以OD线为例:

Python+Kepler.gl实现时间轮播地图过程解析

Python+Kepler.gl实现时间轮播地图过程解析

接着根据数据本身属性进行适当的视觉元素的调整,这部分看个人喜好,具体步骤略过:

Python+Kepler.gl实现时间轮播地图过程解析

接下来到最重要的步骤,打开左上角的筛选面板:

Python+Kepler.gl实现时间轮播地图过程解析

点击「Add Filter」,选择想要作为时间轮播依据信息的字段:

Python+Kepler.gl实现时间轮播地图过程解析

地图右下角随即出现时间轮播部件:

Python+Kepler.gl实现时间轮播地图过程解析

可以在时间轮播部件中设置时间窗口跨度、播放速度等,下面是我制作出的效果,因为动图录制帧数不宜太高,实际比动图中要流畅很多,你也可以自己自由探索:

Python+Kepler.gl实现时间轮播地图过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之list和str比较
Sep 20 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
基于Django与ajax之间的json传输方法
May 29 Python
Django框架模板的使用方法示例
May 25 Python
python中的colorlog库使用详解
Jul 05 Python
使用Python实现牛顿法求极值
Feb 10 Python
Python range与enumerate函数区别解析
Feb 28 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
python中@property的作用和getter setter的解释
Dec 22 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
用pandas划分数据集实现训练集和测试集
Jul 20 #Python
Python数据可视化实现漏斗图过程图解
Jul 20 #Python
浅谈pandas dataframe对除数是零的处理
Jul 20 #Python
为什么说python更适合树莓派编程
Jul 20 #Python
Python faker生成器生成虚拟数据代码实例
Jul 20 #Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 #Python
python pandas dataframe 去重函数的具体使用
Jul 20 #Python
You might like
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
极简的Python入门指引
2015/04/01 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
编写Python的web框架中的Model的教程
2015/04/29 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
python deque模块简单使用代码实例
2020/03/12 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
校园活动策划方案
2014/06/13 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
公司考勤管理制度
2015/08/04 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
初中语文教师研修日志
2015/11/13 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL