(数据科学学习手札64)在jupyter notebook中利用kepler.gl进行空间数据可视化
一、简介
kepler.gl是由Uber开发的进行空间数据可视化的开源工具,是Uber内部进行空间数据可视化的默认工具,通过其面向Python开放的接口包keplergl,我们可以在jupyter notebook中通过书写Python代码的方式传入多种格式的数据,在其嵌入notebook的交互窗口中使用其内建的多种丰富的空间数据可视化功能,本文就将针对在jupyter notebook中使用keplergl的基本用法进行介绍。
二、利用keplergl调用kepler.gl
2.1 从一个小例子开始
首先我们需要在Python中安装kepler.gl的Python接口包keplergl,只需要简单的pip install keplergl即可,如果安装过程中遇到与geopandas、fiona相关的错误,只需要重装gdal模块即可,在完成安装之后,通过下面的小例子来认识kepler.gl的使用方式:
from keplergl import KeplerGl #创建一个KeplerGl对象
map1 = KeplerGl(height=500)
#激活KeplerGl对象到jupyter的窗口中
map1
在jupyter notebook中运行完上述代码后会出现kepler.gl的操作窗口,如下图所示:

点击左上角的小箭头便可以展开一个功能丰富的窗体:

第一个按钮下包含了跟图层元素相关的众多功能,要使用这些功能需要导入数据,利用add_data()方法传入,它有两个参数,data用于传入包含要传入图层的所有数据信息(具体的格式下一章节中会做具体介绍),name传入字符串类型的变量,用于给当前图层命名,默认为'unnamed',下面我们以一个简单的飞线图的示例来初步认识利用kepler.gl进行可视化的基本流程:
使用到的数据是随机生成的,除经纬度和地名外其它字段真实之外其他字段无意义,保存在datatable.csv中,具体如下:

在之前已经初始化的map1的基础上,将数据表读入并利用add_data()方法传入作为图层layer1:
import pandas as pd
df1 = pd.read_csv('datatable.csv',encoding='ANSI')
map1.add_data(df1,name='layer1')
接着kepler.gl窗体便接收到响应转变如下:

skpler.gl会对csv格式的文件的字段类型进行推断,一定要在代表经纬度信息的字段名称中加上对应的lat、lng部分,否则导入数据后并不能自动识别为可能的图形对象,skpler.gl中主要用手动的方式来调整显示哪些对象、以什么格式显示,通过一番简单的手动调整我们得到下面的图像:

要显示什么对象隐藏什么对象可以全部依靠手动在菜单栏中调整对应的属性,也可以通过json格式传入config参数来实现,我们提取上面可视化结果下map1的config参数,再在初始化一个新的窗体时直接用字典传入参数data为图层layer1对应的df1,参数config为map1.config:
#直接在初始化的时候传入对应图层数据和map1的参数config
map2 = KeplerGl(height=700,data={'layer1':df1},config=map1.config)
map2

可以看到通过这种方式我们直接一步就还原了之前完成的可视化结果,通过本小节中这个简单的小例子,你应该对jupyter notebook中如何调用kepler.gl有了一个初步的认识,接下来我们在不同的例子中总结传入不同格式数据进行可视化的方法。
2.2 绘制GeoJson类型文件
geojson文件是kepler.gl中使用起来最方便的一种数据格式,因为它格式清楚,kepler.gl可以直接推理出需要执行的可视化方案,下面这个例子使用到kepler.gl所属的github下notebooks文件下的geojson-data.json,这个geojson文件记录了位于巴黎的一个多边形的矢量信息:
import keplergl
with open('geojson-data.json', 'r') as f:
geojson = f.read()
map_1 = keplergl.KeplerGl(height=600,data={'geojson':geojson})
map_1

skpler.gl直接绘制出我们需要的多边形,,类似的你可以根据自己的需要创造出更多的可视化作品,下面的几个美观的可视化作品来自kepler.gl的官网:







以上就是本文的全部内容,如有笔误望指出!
(数据科学学习手札64)在jupyter notebook中利用kepler.gl进行空间数据可视化的更多相关文章
- (数据科学学习手札145)在Python中利用yarl轻松操作url
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,在诸如网络爬虫.web应用开发 ...
- (数据科学学习手札107)在Python中利用funct实现链式风格编程
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 链式编程是一种非常高效的组织代码的方式,典型如p ...
- (数据科学学习手札44)在Keras中训练多层感知机
一.简介 Keras是有着自主的一套前端控制语法,后端基于tensorflow和theano的深度学习框架,因为其搭建神经网络简单快捷明了的语法风格,可以帮助使用者更快捷的搭建自己的神经网络,堪称深度 ...
- (数据科学学习手札71)在Python中制作个性化词云图
本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 词云图是文本挖掘中用来表征词频的数据可视化 ...
- (数据科学学习手札91)在Python中妥善使用进度条
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常运行程序的过程中常常涉及到循环迭代过程,对 ...
- (数据科学学习手札125)在Python中操纵json数据的最佳方式
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常使用Python的过程中,我们经常会 ...
- (数据科学学习手札127)在Python中使用icecream实现高效debug
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 尽管有那么多花里胡哨的debug工具和方式 ...
- (数据科学学习手札58)在R中处理有缺失值数据的高级方法
一.简介 在实际工作中,遇到数据中带有缺失值是非常常见的现象,简单粗暴的做法如直接删除包含缺失值的记录.删除缺失值比例过大的变量.用0填充缺失值等,但这些做法会很大程度上影响原始数据的分布或者浪费来之 ...
- (数据科学学习手札97)掌握pandas中的transform
本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 开门见山,在pandas中,transform是 ...
随机推荐
- keras 的使用
theano 以及 TensorFlow 是 keras 的 backend(后端支持),因此,keras 本质上是对 thenao 或者 TensorFlow 的进一步封装(wrapper). ke ...
- ImageNet 数据集
1. top-5 error rate ImageNet 图像通常有 1000 个可能的类别,对每幅图像你可以猜 5 次结果(即同时预测5个类别标签),当其中有任何一次预测对了,结果都算对(事实上一个 ...
- debian9 安装 odoo11 笔记用 部分内容转载前辈的,在此感谢
1先创建个odoo用户 sudo adduser odoo 2:给root 权限: sudo vi /etc/sudoers 修改文件参考如下: # User privilege specificat ...
- WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画
原文:WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画 利用WPF的ListView控件实现类似于Winform中DataGrid行背景色交替变换的效果,同 ...
- WCF Rest用法
GET GET单参数 服务器 [OperationContract] string GetOneParameter(string value); [WebInvoke(Method = "G ...
- C#(WPF)为Grid添加实线边框。
原文:C#(WPF)为Grid添加实线边框. 相信大家在做WPF项目的时候,都会用到Grid这个布局控件,一般情况下,如果只是为了布局,那就不需要显示它的边框,但是也有特殊需求,如果把它当做表格来使用 ...
- MVC基架生成的Edit视图
@model MyMusicStore.Models.Album @{ ViewBag.Title = "Edit"; } <h2>Edit</h2> ...
- C#异步委托等待句柄的使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- WPF属性(一)依赖属性
原文:WPF属性(一)依赖属性 依赖属性是一种可以自己没有值,并能通过使用Binding从数据源获得值的属性,拥有依赖属性的对象称为依赖对象,在传统开发中,一个对象所占用的内存在调用new操作符进行实 ...
- Vue-cli入门(一)——项目搭建
Vue-cli入门(一)——项目搭建 前言: Vue-cli是一款基于vue的项目脚手架工具,其集成了webpack环境和主要的依赖,对于我们的项目搭建.开发.打包.维护管理等都是非常的方便. 主要内 ...