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之Character string(实例讲解)
Sep 25 Python
Python 模拟员工信息数据库操作的实例
Oct 23 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
tornado+celery的简单使用详解
Dec 21 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
Python-split()函数实例用法讲解
Dec 18 Python
python实现ROA算子边缘检测算法
Apr 05 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 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
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
JS表的模拟方法
2015/02/05 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python中标准模块importlib详解
2017/04/16 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python测试mysql写入性能完整实例
2018/01/18 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
最美家庭活动方案
2014/08/31 职场文书
家装业务员岗位职责
2015/04/03 职场文书
捐书活动倡议书
2015/04/27 职场文书
电影建党伟业观后感
2015/06/01 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android