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脚本内运行linux命令的方法
Jul 02 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python绘制散点图并标记序号的方法
Dec 11 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
Python chardet库识别编码原理解析
Feb 18 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
pytorch中的model=model.to(device)使用说明
May 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
应急管理培训方案
2014/06/12 职场文书
入党积极分子群众意见
2015/06/01 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL