Python+Kepler.gl实现时间轮播地图过程解析

作者:吃着东西不想停 时间:2021-03-27 00:20:52 

前言

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实现时间轮播地图过程解析

来源:https://www.cnblogs.com/zwhy8/p/13325460.html

标签:Python,Kepler,gl,时间,轮播,地图
0
投稿

猜你喜欢

  • Python使用pyecharts绘制世界地图,省级地图,城市地图实例详解

    2022-08-08 06:37:22
  • 放弃 Python 转向 Go语言有人给出了 9 大理由

    2021-04-14 20:28:49
  • MySQL表字段设置默认值(图文教程及注意细节)

    2024-01-18 14:34:52
  • SQL SERVER查询所有数据库名,表名,和字段名的语句

    2012-01-05 19:25:26
  • python boto和boto3操作bucket的示例

    2022-08-05 03:22:49
  • Python如何调用JS文件中的函数

    2022-11-21 01:23:11
  • python 实现批量xls文件转csv文件的方法

    2023-08-29 10:25:26
  • golang正则之命名分组方式

    2024-05-22 10:17:10
  • 关于SQL数据库 msdb.dbo.sp_send_dbmail 函数发送邮件的场景分析

    2024-01-14 19:20:11
  • vue获取data数据改变前后的值方法

    2024-04-30 10:35:10
  • Linux中大内存页Oracle数据库优化的方法

    2023-07-19 11:24:57
  • 创意方法杂谈

    2009-05-13 12:53:00
  • Vue.js通用应用框架-Nuxt.js的上手教程

    2024-04-28 10:54:31
  • Python小白垃圾回收机制入门

    2022-05-20 04:38:42
  • python定义类self用法实例解析

    2022-01-08 14:11:01
  • Scrapy元素选择器Xpath用法汇总

    2021-09-11 11:42:58
  • 一段重用很高的ajax代码

    2009-02-09 13:27:00
  • Python原始字符串(raw strings)用法实例

    2021-05-04 18:29:27
  • 简单介绍Python的Tornado框架中的协程异步实现原理

    2021-06-21 10:00:23
  • 嵌入Flash应该考虑不支持Flash的浏览器

    2007-12-20 12:29:00
  • asp之家 网络编程 m.aspxhome.com