Jupyter Notebook 里玩转地理数据可视化

什么是 PyL7VP

Jupyter Notebook 是一个基于网页的交互式计算环境,可以用于数据清理和转换、统计建模、数据可视化、机器学习等。对于数据分析的用户来说,适合进行数据可视化,可以通过调整代码和参数来实时更新图表和可视化效果,进行交互式的数据分析和可视化操作,可以帮助我们更好的进行数据分析和探索。

Jupyter Notebook 里有很多的地理数据可视化库,对于小白来说,需要理解库的 API 以及编写较多的代码。pyl7vp 是基于地理数据可视分析工具 L7VP 封装的 Python 环境可视化工具,只需要导入数据的代码,自动根据数据生成可视化效果,只需在工具上简单的可视化操作,完成交互式的数据分析。

简单使用

安装 pyl7vp 包

使用环境:python >= 3

bash 复制代码
$ pip install pyl7vp

创建 L7VP 地图

python 复制代码
from pyl7vp import L7VP

# 地图高度设置为 600
l7vp_map = L7VP(height = 600)

l7vp_map.show()

添加数据

四条数据

python 复制代码
import pandas as pd

# 四条数据(经度,纬度,地震等级)
df = pd.DataFrame(
  {'longitude': [105.005, 104.602, 103.665, 105.275],
   'latitude': [32.349, 32.067, 31.29, 32.416],
   'mag': [5.2, 3.0, 6.0, 2.0]
  })

添加数据到地图上

python 复制代码
# Add dataset to map
l7vp_map.add_dataset({"id": "my_dataset", "type": 'local', "data": df})

# Display map
l7vp_map.show()
添加数据到地图上

自定义我的地图

数据添加到地图上后,可以在工具上自定义配置可视化效果,以及自定义底图和过滤筛选数据等。

自定义可视化图层

添加数据集后可自定义配置多个可视化「图层」。在地图上,图层是可以多个叠加在一起的,来完成数据可视化,在工具上怎么添加可视化图层,可以看教程《添加可视化图层

自定义配置可视化效果

工具支持热力聚集,空间分布,客流聚合等 12+ 种可视化效果

自定义底图样式

可以配置高德和海外的 mapbox 地图,配置不同的底图样式等。

自定义底图样式

支持什么数据格式

工具支持数据源和数据类型有不同的格式,例如 DataFrame、CSV、JSON、Excel、GeoJSON、数据库等,用户可以直接导入并处理各种类型的数据,不需要进行繁琐的转换和预处理操作。比如常见的读取 CSV 文件如下

CSV 文件内容

less 复制代码
id,point_latitude,point_longitude,value,time
a,31.2384,108.30948,5,2019-08-01 12:00:00
b,31.2311,108.30231,11,2019-08-01 12:05:00
c,31.2334,108.30238,9,2020-08-01 11:55:00

将 CSV 文件添加到地图上

python 复制代码
import pandas as pd

df = pd.read_csv('csv-data.csv')

# Add dataset to map
l7vp_map.add_dataset({"id": "my_dataset", "type": 'local', "data": df})

在各种的文件格式中,也可以嵌入地理数据类型,比如数据里嵌入 WKT (Well-Known Text) 格式:

python 复制代码
df = pd.DataFrame({
  'id': ['item-1', 'item-2'], 
  'time': ['2020-02-10', '2020-02-15'], 
  'value': [10, 14], 
  'wkt': ['POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))', 'POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))']
})

# Add dataset to map
l7vp_map.add_dataset({"id": "my_dataset", "type": 'local', "data": df})

以及数据里嵌入 H3 空间索引数据格式:

python 复制代码
df = pd.DataFrame({
  'id': ['item-1', 'item-2'], 
  'time': ['2020-02-10', '2020-02-15'], 
  'value': [10, 14], 
  'h3': ['8940e31acd7ffff', '8940e3c4d2bffff']
})

# Add dataset to map
l7vp_map.add_dataset({"id": "my_dataset", "type": 'local', "data": df})

更多文件格式可以阅读数据格式教程

保存导出结果

可以执行命令将结果保存为 HTML 文件,保存在自己电脑上,也可以把文件分享给其他人,只需要打开文件就可以预览可视化结果了。

python 复制代码
# save to html file
l7vp_map.save_to_html("map.html")

更多资料

相关推荐
冬奇Lab17 小时前
每日一个开源项目(第147篇):HyperGraphRAG - 用超图表示 N 元关系,RAG 的第三代范式
人工智能·开源·graphql
网易云信19 小时前
Cursor点燃个人开发者,企业级AI为何频频受挫?Agent工厂从提效工具到AI员工的跃迁
人工智能·开源
ZzT21 小时前
在 GitHub 上 @一下 claude,它自己把 issue 改成 PR
人工智能·开源
饼干哥哥1 天前
最强视频创作工作流:Image2 + Seedance 2.0,Topview一键闭环|跨境电商版
开源·产品·设计
ApacheSeaTunnel1 天前
当多表数据涌入,Apache SeaTunnel 如何巧妙化解主键冲突?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
稀土熊猫君1 天前
一个人能做出什么开源项目?
vue.js·后端·开源
狂师1 天前
比 Playwright 更给力,推荐一个AI Agent的浏览器自动化开源项目!
前端·开源·测试
AI袋鼠帝1 天前
开源「仓颉.Skill」2.0,你现在可以蒸馏任何视频!
开源·aigc
冬奇Lab2 天前
每日一个开源项目(第146篇):openpilot - 开源自动驾驶辅助系统,曾在 Consumer Reports 评测中超过特斯拉 Autopilot
人工智能·开源·自动驾驶
她的男孩2 天前
后台接口加密别只会 HTTPS,ForgeAdmin 的 RSA + SM4/AES 源码拆解
后端·面试·开源