(数据科学学习手札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是 ...
随机推荐
- 机器学习: DeepDreaming with TensorFlow (一)
在TensorFlow 的官网上,有一个很有趣的教程,就是用 TensorFlow 以及训练好的深度卷积神经(GoogleNet)网络去生成一些有趣的pattern,通过这些pattern,可以更加深 ...
- OpenGL(八) 显示列表
OpenGL在即时模式(Immediate Mode)下绘图时,程序中每条语句产生的图形对象被直接送进绘图流水线,在显示终端立即绘制出来.当需要在程序中多次绘制同一个复杂的图像对象时,这种即时模式会消 ...
- 安装Eclipse完PyDev插件中没有出现
假设你是在Window7在环境搭建.请确保您使用以管理员身份运行Eclipse. PyDev插件安装后没有显示是由于PyDev的执行须要Java7,能够通过升级JDK的版本号来完毕,而且配置环境变量( ...
- 关于hibernate组件配置
建立关系数据模型的一个重要原则是在不会导致数据冗余的前提下,尽可能减少数据库表的数目及表之间的外键参照关系.以员工信息为例,员工信息中有员工的家庭地址信息,如果把地址信息单独放在一张表中,然后建立员工 ...
- WPF 调用资源图片
原文:WPF 调用资源图片 最近做的wpf项目中,在开发的时候,把图片放到了bin下面,采用了imagePath =System.IO.Directory.GetCurrentDirectory()+ ...
- windows常用cmd指令
打开命令行 1.在菜单栏中搜索命令行 2.在文件管理器的Path栏输入cmd,则在当前目录打开命令行 3.Windows+R,输入cmd,回车 ping(网络诊断工具) ping是Windows.Un ...
- QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)
原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1) http://blog.csdn.net/johnsu ...
- Lexer的设计--下(5)
一个礼拜之后我终于从成都回来了, 从今天开始更新会恢复... 一点小的改进 写lex()的时候距离我上一次写已经一个礼拜了, 所以我回顾了一下之前的代码, 发现还是有瑕疵. 比如考虑到一个较短的程序, ...
- C#调用C/C++ DLL 参数传递和回调函数的总结
原文:C#调用C/C++ DLL 参数传递和回调函数的总结 Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a ...
- 关于C#的可变长参数
可变参数 params===>> params int[] list,传入参数的类型必须是一种类型 static void Main(string[] args) { , , , ); C ...