一、简介

  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进行空间数据可视化的更多相关文章

  1. (数据科学学习手札145)在Python中利用yarl轻松操作url

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,在诸如网络爬虫.web应用开发 ...

  2. (数据科学学习手札107)在Python中利用funct实现链式风格编程

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 链式编程是一种非常高效的组织代码的方式,典型如p ...

  3. (数据科学学习手札44)在Keras中训练多层感知机

    一.简介 Keras是有着自主的一套前端控制语法,后端基于tensorflow和theano的深度学习框架,因为其搭建神经网络简单快捷明了的语法风格,可以帮助使用者更快捷的搭建自己的神经网络,堪称深度 ...

  4. (数据科学学习手札71)在Python中制作个性化词云图

    本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 词云图是文本挖掘中用来表征词频的数据可视化 ...

  5. (数据科学学习手札91)在Python中妥善使用进度条

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常运行程序的过程中常常涉及到循环迭代过程,对 ...

  6. (数据科学学习手札125)在Python中操纵json数据的最佳方式

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常使用Python的过程中,我们经常会 ...

  7. (数据科学学习手札127)在Python中使用icecream实现高效debug

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 尽管有那么多花里胡哨的debug工具和方式 ...

  8. (数据科学学习手札58)在R中处理有缺失值数据的高级方法

    一.简介 在实际工作中,遇到数据中带有缺失值是非常常见的现象,简单粗暴的做法如直接删除包含缺失值的记录.删除缺失值比例过大的变量.用0填充缺失值等,但这些做法会很大程度上影响原始数据的分布或者浪费来之 ...

  9. (数据科学学习手札97)掌握pandas中的transform

    本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 开门见山,在pandas中,transform是 ...

随机推荐

  1. 代码首要的目标应该是“解决问题”(包括“没有 bug”),其次的目标才是“简单优雅”。

    什么是现实理想主义者 曾经有人看了我的文章,以为我是一个“理想主义者”,来找我聊天.他说:“你知道吗,我跟你一样喜欢简单优雅的代码.上次我在某公司工作,看到他们的代码乱得不成样子,二话没说给他们重写了 ...

  2. ATS项目更新(1) CC视图与备份路径同步

    1: subst t: /d 2: subst t: D:\PublicViews\Automation_Framework\SQA_ATE_DEV 3: 4: rem ** update folde ...

  3. qt 透明度设置(setWindowOpacity 和 setAutoFillBackground 和 带透明度的画刷填充就好了)

    1,父窗口透明// 设置背景图片 QPalette pa;setAutoFillBackground(true);pa.setBrush(QPalette::Background,QBrush(QPi ...

  4. Expression Blend学习四控件

    原文:Expression Blend学习四控件 Expression Blend制作自定义按钮 1.从Blend工具箱中添加一个Button,按住shift,将尺寸调整为125*125; 2.右键点 ...

  5. 数据绑定(四)使用DataContext作为Binding的Source

    原文:数据绑定(四)使用DataContext作为Binding的Source DataContext属性被定义在FrameworkElement类里,这个类是WPF控件的基类,这意味着所有WPF控件 ...

  6. 图像滤镜艺术---球面(Spherize)滤镜

    原文:图像滤镜艺术---球面(Spherize)滤镜 球面(Spherize)滤镜 球面滤镜是通过极坐标变换实现图像的球面特效. 代码如下:         //         ///        ...

  7. Win8 Metro(C#)数字图像处理--2.65形态学轮廓提取算法

    原文:Win8 Metro(C#)数字图像处理--2.65形态学轮廓提取算法  [函数名称]   形态学轮廓提取函数       WriteableBitmap Morcontourextract ...

  8. 微信小程序把玩(三十一)wx.uploadFile(object), wx.downloadFile(object) API

    原文:微信小程序把玩(三十一)wx.uploadFile(object), wx.downloadFile(object) API 反正我是没有测通这两个API!!!!不知道用的方式不对还是其他的!! ...

  9. 零元学Expression Blend 4 - Chapter 6 如何置入Photoshop档案以及入门动画设计

    原文:零元学Expression Blend 4 - Chapter 6 如何置入Photoshop档案以及入门动画设计 本章将教大家如何把Photoshop档案置入Expression Blend ...

  10. SendMessage发送自定义消息及消息响应(VC版)

    控件向父窗体发送自定义消息,父窗体定义处理此消息的函数  程序源代码(整个工程)下载:http://download.csdn.net/detail/qq2399431200/6274793 效果描述 ...