惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
Scott Helme
Scott Helme
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security
I
Intezer
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
V2EX - 技术
V2EX - 技术
Google Online Security Blog
Google Online Security Blog
L
Lohrmann on Cybersecurity
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
LINUX DO - 热门话题
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Latest news
Latest news
B
Blog
F
Full Disclosure
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
L
LangChain Blog
GbyAI
GbyAI
Last Week in AI
Last Week in AI
S
Security Affairs
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
Security Latest
Security Latest
Vercel News
Vercel News
Y
Y Combinator Blog
G
GRAHAM CLULEY
S
Securelist
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
雷峰网
雷峰网

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
Kepler.gl 不需要一行代码!玩转酷炫的数据地图 - 少数派
2019-07-13 · via 少数派

在处理数据的过程中,如何“优雅”的展示这些数据一直是一个重要的技巧。而为基于地理坐标为数据打点更是一个重要的技能。在过去,我们的常见的做法是通过诸如 Stata、R、或者是 Python 这些工具来进行这一步的。而这些方法无一例外,都需要对一定的编程技巧。此次我们介绍的数据可视化工具,可以让你不需要任何编程基础,即可实现数据地图的可视化!

一、简介

Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.

Kepler.gl 是一个图形化的数据可视化工具,基于 Uber 的大数据可视化开源项目 deck.gl  创建的 demo app。

Github项目地址:https://github.com/keplergl/kepler.gl/

Kepler支持的数据格式

Kepler.gl 支持 3 种数据格式,分别是: CSV、JSON、GeoJSON 。部分地图种类只支持 GeoJSON 格式的数据。

1. 关于 CSV 文件

CSV 是常见的数据格式。它通过分隔符的形式,以存文本的储存数据。我们常用的 Excel 默认保存的是 xlsx 格式或者 xlsxs 格式,可以通过另存为的方式保存为 CSV 文件。

通过另存为 保存为 .csv 

关于在 Kepler.gl 中使用 CSV 文件,这里还需要说明一下:

  • Kepler.gl 目前对中文支持并不那么好,所以变量名称最好用英文,不然在显示时会乱码。导致自己都不知道这组数据是哪个变量。
  • Kepler.gl 的地理信息即经纬度信息需要经度一个组,纬度一个组。并且,Kepler.gl 能够自动识别经纬度信息,不过需要你在给经纬度命名时采用:<name>_lat 和 <name>_lng 或者 <name>_latitude 和 <name>_longitude,或者 <name>_lat and <name>_lon。 其中<name>是自选的变量名称。
  • 关于 CSV 文件的更多说明,可参加官方文档的内容:https://github.com/keplergl/kepler.gl/blob/master/docs/user-guides/b-kepler-gl-workflow/a-add-data-to-the-map.md

2. 关于 JSON 文件

JSON 格式是常见的用于数据传输的文件格式。语言描述容易显得太过复杂,我们举一个简单的例子(一看就会的那种):

一份 JSON 格式文件内的内容是这样的:

{
	"people": [
		{
			"firstName": "王",
			"lastName": "小明"
		},
		{
			"firstName": "陈",
			"lastName": "小红"
		}
	]
}

那么它其实可以分为:

这么看,大概有些人已经猜到了,其实这个数据列成表格就是这样的:

这就是JSON 格式文件所实现的功能。可以简单的理解为将“一个表格的数据,用文字表述”。在一些情况下,你也可用使用 JSON 格式数据。但其实更多情况下,需要使用的是 CSV 或者 GeoJSON,这里介绍了 JSON 那么下文中 GeoJSON 的内容就更容易理解。

2. 关于 GeoJSON 文件

而 GeoJSON 是常见的一种地理信息的文件格式,在原有的 JSON 格式基础上,添加了地理信息相关的内容。如何添加的呢?就是基于大家约定俗成的规范,然后声明地理位置信息。其实 GeoJSON 是 JSON 的一个子集。基本的语法结构上,两者其实是一样的,都是一个 Key 对应一个 Value 。但是不同点在于,GeoJSON 通过特定的 key 来确定特定类型、特点功能的 Value。

为了理解 GeoJSON ,我们来看一个实例:

"type": "Feature",

"properties": {

"adcode": 110000,

"name": "北京市",

"center": [

116.405285,

39.904989

],

"centroid": [

116.41989,

40.189913

],

"childrenNum": 16,

"level": "province",

"subFeatureIndex": 0,

"acroutes": [

100000

],

"parent": {

"adcode": 100000

}

},

"geometry": {

"type": "MultiPolygon",

"coordinates": [...(篇幅限制,省略)...

]

}

}

这是一份记录北京市信息的GeoJSON文件。首先,我们能够看到,最外层是三个Key:

「type」:type确定的是其下 key 的类型;

「properties」:包含的各种「变量」和「值」。例如案例中:“adcode”,表示邮编,北京为110000;“na me”,表示名称,北京市;“center”为地理中心,经纬度坐标需用\[]包裹住,这样才是完整的一组数据。其他信息也是类似的,这里不再赘述;

「geometry」:则是表示几何信息。几何信息有多种类型,“type”标注了这些信息的种类,具体的主要有以下几种:

- Point 即点图。相当于在地图上画一个点。

- Multipoint 即多点图,用于地图打点,可以包含多个点的集合。

- LineString 即线。相当于在地图上画一条线。

- MultiLineString 同理,多线。

- Polygon 多边形。在地图上用一个多边形围住一个范围。

- MultiPolygon 多组多边形。

- GeometryCollection 几何集合。(相当于多层嵌套)

其中type确定的是其下 key 的类型。 “Feature” 表示 其对象为“特征对象”。“特征对象”必须包含 “properties”和“geometry”两个类型的成员,两者之间并没有顺序的差异。

更多信息可参考:https://zh.wikipedia.org/wiki/GeoJSON

二、上手使用

说了那么多关于数据格式的内容,终于可以一起上手了。如果没有现成的数据需要分析,那么可以先使用 Kapler.gl 提供的 Sample Data 学习一下这款软件如何操作:

sample data

网站很贴心的提供了一些数据集,供大家学习上手。其中有诸如加利福尼亚地震数据、2017年美国失业率数据等内容,这些数据都提供下载。其中部分数据采用的是 GeoJSON  格式的数据,可供大家下载学习(就是想做啥图,就把样例中的 GeoJSON 数据下载下来,参考格式在替换上自己的数据🌚)。

1. 呈现效果

我们选择一了地震数据集来做演示。首先简单介绍一下这个数据:

地震数据

这个数据集主要包括了时间信息(DataTime)、地理位置信息(Latitude 和 Longitude)、以及其他描述地震的信息(震级、震源深度等)。

所以,这些数据在数据地图中他是如何展示的呢?

Kepler.gl 根据地理位置信息和地震信息标注点的位置和大小颜色。然后更加下方的时间轴范围展示一张图里显示的数量。并且可以根据时间轴“动起来”,效果如下:

看完了效果,我们大致能够了解 Kepler.gl 能够将数据可视化实现到怎么样的程度(其实每一个案例的呈现都非常优秀)。接着让我看看更为具体的编辑界面吧,这才是我们需要学习的内容。

2.工具栏

Kepler.gl 设置项分为4个工具栏,左其分别是 Layers (图层)、Filters (过滤)、Interaction(交互)、Base map (底层地图)。

四者的作用可以概括为:

Layers (图层):数据展示的图层, 位于底层地图上面。就是我们导入的数据后,控制样式的图层。

Filters (过滤器):用以过滤数据。例如,上图中时间轴就是一个过滤器,用以过滤时间段,显示相同时间段的数据。

Interaction(交互):即鼠标移动时显示的数据信息。

Base map (底层地图):就是最底层地图样式。有4种样式可选。

1.1  Layers 的设置

首先来看图层的具体设置。图层的概念与常见的图片编辑软件是一样的,例如你可以在底层添加显示地图颜色的图层,在上层添加显示一个光束的图层。分别展示数据大小、流向等信息。

具体来说:

通过添加按钮可以添加多个图层,上面的图层会遮盖下面的图层。可以通过左边的眼睛按钮选择显示或者隐藏图层。

鼠标移动到图层横条后可以对其进行排序(按住左边几个小方格点阵,拖拽即可)、重命名或者删除等操作。

点击向下的箭头,可以展开一个图层的具体设置。

这里最基本的,选择需要的地图类型(Layer Type / Type):

一共有9+2(H3和3D图)种。每一种地图的类型对于数据要求也不同。例如 Arc 和 Line 图,就需要有两组经纬度坐标,即起止地的坐标。 Polygon 就要求使用 geojson 格式的文件。数据格式可以参照前文提到的方法,下载 Sample 数据做参考。本文就以最基础的 Point 点图为例,介绍一下具体的设置项,抛砖引玉方便读者入门。

选择了 Point 后,如果没有自动匹配经纬度,那么需要手动选择经纬度变量:

- lat:纬度  (加\* 为必填项目)

- lng: 经度

- altitude :海拔 (选填项)

接下来是颜色设置,Kepler.gl 提供了丰富的色彩设置选项。首先是有多种组合完成的配色方案可供选择。我们还能够选择最高20种颜色的搭配。

- color based on 的选项是决定色彩的变量。例如地震案例中选择 magnitude (级数)来确定颜色。

- color scale 选择颜色的分布形式。有 quantize 和 quantile 两组分布方法。

- opacity 透明度。控制点的透明度。

接着是着色半径,就是控制具体点的大小。太小了容易看不见,太大了容易互相遮挡,所以还是需要适当调整的。

- radius range 设置半径范围

- radius based on 半径依据。案例中依然是按照震级来的

- fixed radius to meter 确定到地图实际的米数。就是将点标记到实际地理位置上按比例设置半径。

- draw outline 描边:打开这个按钮会将实色圈变为空心的圈

- High Precision Rendering 高精度绘图:打开按钮会使得绘图精度更高,也会消耗更多资源。

- enable height 展示高度:部分种类的地图还提供高度选项,这样就能绘制出3D的数据地图了,如图:

这是用震源深度最为作为高度的数据地图

1.2 Filters 过滤器的设置

Filters 除了为地图增加时间轴外,更为主要功能还是针对某一变量进行数据的过滤,例如过滤掉浅源的地震:

当然,最常见的还是用时间轴过滤器来制作动图效果。

1.3 Interactions 设置交互时显示的信息

Interactions 其实就是设置鼠标点击时,显示的样式。通过 dataset 中的变量,选择添加显示的内容。

1.4 base map 底层地图样式的设置

最后的 Base map 其实也很简单,选择深色或者浅色主题的底层地图,以及在地图上呈现的内容多少:

最后,如果还有其他问题,可以参考 Kepler.gl 的官方说明文档:https://github.com/uber/kepler.gl/blob/master/docs/a-introduction.md


注1:本文首发于 「数据Seminar」 公众号

注2: 本文撰写于去年7月,Kepler.gl 在这一年中不断进化,在一些名称上也有所变化,具体可参考 Kepler 的 RoadMap:https://github.com/keplergl/kepler.gl/wiki/Kepler.gl-2019-Roadmap