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 正则式 概述及常用字符
May 07 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
详解Python中for循环是如何工作的
Jun 30 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Python字符串格式化输出代码实例
Nov 22 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
Python 合并拼接字符串的方法
Jul 28 Python
Python hashlib模块的使用示例
Oct 09 Python
使用Python下载抖音各大V视频的思路详解
Feb 06 Python
PyCharm+Miniconda3安装配置教程详解
Feb 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无刷新上传文件实现代码
2011/09/19 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
php格式化json函数示例代码
2016/05/12 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
python flask 多对多表查询功能
2017/06/25 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
pandas通过索引进行排序的示例
2018/11/16 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
通信工程专业毕业生推荐信
2013/12/25 职场文书
实习单位接收函模板
2014/01/10 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
涨价通知怎么写
2015/04/23 职场文书
党支部鉴定意见
2015/06/02 职场文书
Go语言读取txt文档的操作方法
2022/01/22 Golang