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实现批量监控网站
Sep 09 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
Python中pygal绘制雷达图代码分享
Dec 07 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
Python编程中类与类的关系详解
Aug 08 Python
如何在python中执行另一个py文件
Apr 30 Python
Python中的全局变量如何理解
Jun 04 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
Python语言中的数据类型-序列
Feb 24 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
用Php实现链结人气统计
2006/10/09 PHP
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP异常处理浅析
2015/05/12 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
详解node child_process模块学习笔记
2018/01/24 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
python版飞机大战代码分享
2018/11/20 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
学期自我鉴定范文
2013/10/01 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript
Python绘制散乱的点构成的图的方法
2022/04/21 Python