查看原文
其他

空间数据可视化神器keplergl

尤而小屋 尤而小屋 2022-06-19

公众号:尤而小屋
作者:Peter
编辑:Peter

大家好,我是Peter~

今天给大家介绍一款超赞的空间(地理)数据可视化神器:keplergl。小编最近偶然发现的这个神器是Uber完全开源的,也是Uber内部进行空间数据可视化的默认工具。

通过其面向Python开放的接口包keplergl,我们可以在jupyter notebook中通过书写Python代码的方式传入多种格式的数据,在其嵌入notebook的交互窗口中使用其内建的多种丰富的空间数据可视化功能。下面有3个主要的学习地址:

1、官网地址:https://kepler.gl/

2、jupyter notebook使用手册地址:https://github.com/keplergl/kepler.gl/tree/master/docs/keplergl-jupyter#geojson

3、案例地址:https://github.com/keplergl/kepler.gl/tree/master/bindings/kepler.gl-jupyter/notebooks

安装

keplergl的安装是非常简单的。如果报错,请自行百度或者谷歌解决,小编是一次性装成功的❤️

pip install keplergl

惊艳图

一大波惊艳图形来了:

案例入门

import pandas as pd
import geopandas as gpd

from keplergl import KeplerGl

# 创建对象
kep1 = KeplerGl(height=600)
# 激活对象,加载到jupyter notebook中
kep1

可以看到,运行了基本代码后在Jupyter中直接就产生了内置的图形,图形本身也是动态的;暗黑色的背景也是小编喜欢的:


添加数据

keplergl默认是可以添加3种形式的数据:

  • csv
  • GeoJSON
  • DataFrame

csv格式

本地目录下有一份csv数据:china.csv,记录的是我国各个省份的经纬度:

with open("china.csv","r") as f:
    csv_data = f.read()
    
# add_data添加数据
kep1.add_data(data=csv_data, name="csv_kep")
kep1

DataFrame格式

china = pd.read_csv("china.csv")
kep1.add_data(data=china, name="dataframe_kep")
kep1

GeoJson格式

url = 'http://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_040_00_500k.json'
country_gdf = gpd.read_file(url)  # geopandas读取json文件

kep1.add_data(data=country_gdf, name="state")
kep1

自定义图形

Keplergl的自定义方法:关键性按钮。进去了之后就可以自定义操作

配置的保存及复用

实例化kep的配置可以保存在后面的实例对象中复用:

1、保存:

# 保存成文件
with open('config1.py','w') as f:
    f.write('config={}'.format(kep1.config))
    
# 运行:魔法命令%run
%run config1.py

2、复用

kep2 = KeplerGl(height=400,
                data={"layer1":df},
                config=kep1.config  # kep1的配置
               )
kep2

保存图形

1、简约版本,主要是文件名

kep1.save_to_html(file_name="first_kep.html")

2、完整版本:文件名、配置、数据、可读性

# 4个参数
kep1.save_to_html(file_name="first_kep.html",
                  data={'data_1':china},
                  config=config,
                  read_only=True
                 )

在线操作

上面显示的操作都是在no‍tebook中完成的,我们也可以直接在线操作:https://kepler.gl/demo

‍等认真研究过这个工具之后再分享更多的文章,这个库值得好好研究‍


推荐阅读


Python爬虫:渣男 or 渣女?上十字架

Pandas行列转换的4大技巧!

Plotly+Pandas+Sklearn:实现用户聚类分群!

Plotly真秀:一份数据,6种玩法

大揭秘:必须学会的Python数据分析利器

尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存