(数据科学学习手札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的官网:
以上就是本文的全部内容,如有笔误望指出!
相关文章
- 机器学习 — 推荐系统
- Google Earth Engine——gee学习先从数据集开始
- 深度学习中图片数据增强方法
- 《机器学习与数据科学(基于R的统计学习方法)》——1.4 机器学习背后的数学
- python学习之给小学生数学运算题(混合加减乘除法)
- (数据科学学习手札133)利用geopandas绘制拓扑着色地图
- (数据科学学习手札107)在Python中利用funct实现链式风格编程
- (数据科学学习手札85)Python+Kepler.gl轻松制作酷炫路径动画
- (数据科学学习手札73)盘点pandas 1.0.0中的新特性
- (数据科学学习手札71)利用Python绘制词云图
- (数据科学学习手札65)利用Python实现Shp格式向GeoJSON的转换
- (数据科学学习手札63)利用pandas读写HDF5文件
- (数据科学学习手札56)利用机器学习破解大众点评文字反爬
- (数据科学学习手札34)多层感知机原理详解&Python与R实现
- (数据科学学习手札31)基于Python的网络数据采集(初级篇)
- (数据科学学习手札05)Python与R数据读入存出方式的总结与比较
- 羡慕别人是无知(你是独一无二的,每个人都有自己的25亿秒,他人不能替你过,你也不能替他人过。),模仿别人是自杀(学习他人的优点可以,纯粹的去模仿他人就是自杀,杀死了自己,创造了一个别人的影子。每个人都有一本适合自己的一本书)
- 大数据学习——spark笔记
- 大数据学习——hadoop集群搭建2.X
- 【hadoop学习项目】5. 自定义序列化数据对象Bean进行处理
- JavaScript学习---EXT_JS实用开发指南
- 为了懒,我痛心学习Ajax
- 学习笔记:Oracle的trace文件可见性
- 【深度学习】——利用pytorch搭建一个完整的深度学习项目(构建模型、加载数据集、参数配置、训练、模型保存、预测)