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的绘图工具matplotlib使用实例
Jul 03 Python
Python文件夹与文件的操作实现代码
Jul 13 Python
Python实现获取网站PR及百度权重
Jan 21 Python
Python三级菜单的实例
Sep 13 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
python清除字符串中间空格的实例讲解
May 11 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
新手入门常用代码集锦
2007/01/11 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
js实现小时钟效果
2020/03/25 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
铭万公司.net面试题笔试题
2014/07/20 面试题
签约仪式主持词
2014/03/19 职场文书
大型活动组织方案
2014/05/10 职场文书
教师节感谢信
2015/01/22 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL