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入门教程
Apr 03 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python使用minidom读写xml的方法
Jun 03 Python
python3实现多线程聊天室
Dec 12 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 Python
关于Numpy之repeat、tile的用法总结
Jun 02 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 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
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
js自定义事件代码说明
2011/01/31 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
element中的$confirm的使用
2020/04/26 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
楼面经理岗位职责范本
2014/02/18 职场文书
工程质量承诺书范文
2014/03/27 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
学校班班通实施方案
2014/06/11 职场文书
2014年评职称工作总结
2014/11/20 职场文书
车队安全员岗位职责
2015/02/15 职场文书
卡特教练观后感
2015/06/08 职场文书
运动会5000米加油稿
2015/07/21 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏