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 基础学习教程
Feb 08 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
在Python中操作时间之mktime()方法的使用教程
May 22 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
Python 实现Windows开机运行某软件的方法
Oct 14 Python
Python3中列表list合并的四种方法
Apr 19 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python如何将两个txt文件内容合并
Oct 18 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 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 显示客户端IP与服务器IP的代码
2010/10/12 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
Vue 实现简易多行滚动"弹幕"效果
2020/01/02 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
自荐信包含哪些内容
2013/10/30 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
绿色校园广播稿
2014/10/13 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
MySQL触发器的使用
2021/05/24 MySQL
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技