一, 简介
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 的官网:
来源: https://www.cnblogs.com/feffery/p/11142816.html