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类继承用法实例分析
Oct 10 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
5款非常棒的Python工具
Jan 05 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
python使用tkinter实现简单计算器
Jan 30 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
Python button选取本地图片并显示的实例
Jun 13 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
在Pandas中处理NaN值的方法
Jun 25 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 Python
Python日志模块logging用法
Jun 05 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php的大小写敏感问题整理
2011/12/29 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
js调用flash的效果代码
2008/04/26 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
python os.path模块常用方法实例详解
2018/09/16 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
校长就职演讲稿
2014/01/06 职场文书
销售简历自我评价
2014/01/24 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
感谢信
2019/04/11 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle