Kepler.gl 不需要一行代码就能完成数据地图
The following article is from 数据Seminar Author 黄胜蓝
Kepler.gl 不需要一行代码就能完成数据地图
在大数据时代,如何“优雅”地展示数据背后的含义是一个重要的技巧。本文讨论的技巧是如何基于地理坐标将数据打点到地图上。
在过去,我们常见的做法是通过诸如 Stata、R、或者是 Python 这些工具来完成。而这些方法无一例外,都需要具备一定的编程技巧。此次我们介绍的数据可视化工具,可以让你不需要任何编程基础,即可实现数据的可视化!
什么是Kepler.gl
Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.
Kepler.gl 是一个大数据地理空间分析工具,是 Uber 大数据可视化开源项目 deck.gl (http://uber.github.io/deck.gl/#/) 创建的 demo app。
如何使用Kepler.gl
1. GET STARTED
Kepler.gl 是一个网页应用,只要在浏览器中输入 Kepler.gl (或是使用https://uber.github.io/kepler.gl/#/)即可开始使用这个工具。(需要提醒的是,最好使用 Chrome 浏览器访问。)
(域名就是 Kepler.gl)
(主界面长这样)
点击 GET STARTED 即可开始使用(如果点击后无法打开,请尝试切换到 Chrome 浏览器) 。
2. Add Data To Map
如果自己有数据,那么请注意下面关于csv文件的说明内容。如果没有数据,想先学习一下这个工具,可以参考后面关于网站提供的 sample data 的内容。
(选择准备好的数据)
支持的数据类型
Kepler.gl 支持 3 种数据格式,分别是:csv、json、geojson。部分地图种类只支持 geojson格式的数据。我们常用的 Excel 文件格式是 xlsx 需要另存为 csv 文件。
(另存为格式选为 csv)
而 json 和 geojson 涉及到专业知识,这里就不展开叙述了(两种格式知识点其实都不难,有一定编程基础,可以参考官方文档学习一下)。
关于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/uber/kepler.gl/blob/master/docs/b-kepler-gl-workflow/a-add-data-to-the-map.md
使用 sample data 来学习
如果没有数据怎么办?
网站很贴心的提供了9个数据集,供大家学习上手。其中有诸如加利福尼亚地震数据、2017年美国县级的失业率数据等,这些数据都提供下载。其中部分数据采用的是 geojson 格式的数据,可供大家下载学习。
编辑数据地图
我们选择一了地震数据集来做演示。首先简单介绍一下这个数据:
这个数据集主要包括了时间信息(DataTime)、地理位置信息(Latitude 和 Longitude)、以及其他描述地震的信息。
所以,在数据地图中他是如何展示的呢?
Kepler.gl 根据地理位置信息和地震信息标注点的位置和大小颜色。然后根据下方的时间轴范围展示一张图里显示的数量。并且可以根据时间轴“动起来”,效果如下:
看完了效果,我们大致能够了解 Kepler.gl 能够将数据可视化实现到怎么样的程度。接着让我看看更为具体的编辑界面吧,这才是我们需要学习的内容:
工具栏
Kepler.gl 设置项分为4个工具栏,左起分别是 Layers (图层)、Filters (过滤)、Interaction(交互)、Base map (底层地图)。
四者的作用可以概括为:
Layers (图层):数据展示的图层,位于底层地图上面。就是我们导入的数据后,控制样式的图层。
Filters (过滤器):用以过滤数据。上图中时间轴就是一个过滤器。用以过滤时间段,显示对应时间段的数据。
Interaction(交互):即鼠标移动时显示的数据信息。
Base map (底层地图):就是最底层地图样式。有4种样式可选,并且支持自定义。
Layers 的设置
我们需要着重注意的是 Layers 的设置。因为它直接关系到数据地图的“样子”。
图层可以设置多个,上面的图层会遮盖下面的图层。可以通过左边的“眼睛”按钮选择显示或者隐藏图层。
鼠标移动到图层横条后可以对其进行排序(按住左边几个小方格点,拖拽即可)、重命名或者删除等操作。
1. Layers图层中的 Basic 设置。
这里可以选择需要地图类型:
一共有9种。每一种地图的类型对于数据要求也不同。例如 Arc 和 Line 图,就需要有两组经纬度坐标。Polygon 就要求使用 geojson 格式的文件。具体设置大同小异,本文就以最基础的 Point 点图为例讲解。
选择了 Point 后,如果没有自动匹配经纬度,那么需要手动选择经纬度变量:
lat:纬度 (加* 为必填项目)
lng: 经度
altitude :海拔 (选填项)
2.图层中的 color 设置
Kepler.gl 提供了丰富的色彩设置选项。首先是有多种组合完成的配色方案可供选择。我们还能够选择最高20种颜色的搭配。
color based on 的选项是决定色彩的变量。例如地震案例中选择 magnitude (级数)来确定颜色。
color scale 选择颜色的分布形式。有 quantize (量化) 和 quantile (四分位数)两组分布
opacity 透明度。控制点的透明度。
3. Radius 半径设置
radius range 设置半径范围
radius based on 半径依据。案例中依然是按照震级来的
fixed radius to meter 确定到地图实际的米数。就是将点标记到实际地理位置上按比例设置半径。如下图:
4.Draw Outline 描边
打开这个按钮会将实色圈变为空心的圈:
5. High Precision Rendering 高精度绘图
打开按钮会使得绘图精度更高。
6. enable height 高度
部分种类的地图还提供高度选项,这样就能绘制出3D的数据地图了,如图:
这是用震源深度最为作为高度的数据地图。
Filters
Filters 除了为地图增加时间轴外,更为主要功能还是针对某一变量进行数据的过滤,例如过滤掉浅源的地震:
Interactions
Interactions 其实就是设置鼠标点击时,显示的样式。通过 dataset 中的变量,选择添加显示的内容。
Base map
最后的 Base map 其实也很简单,选择深色或者浅色主题的底层地图:
通过 map layers 选择要显示在地图上的内容:
当然高级玩家也可以自定义地图样式:
最后,如果还有其他问题,可以参考:https://github.com/uber/kepler.gl/blob/master/docs/a-introduction.mdKepler.gl 的官方说明文档。
小tips:具体地点的经纬度信息,可以通过百度地图的这个网址查找:http://api.map.baidu.com/lbsapi/getpoint/index.html。也可通过百度地图api 获得相关信息。
数据Seminar
这里是经济学与大数据的交叉路口
文 | 黄胜蓝
编辑 | 黄胜蓝
审核 | 杨奇明
还在为如何制作精美图表苦恼头秃么?全新推出高下制图app,不断更新的制图模板,随心更改样式,轻松一键制图。现在积极参与高下制图内测,更有机会获得正式版会员,享受轻松作图哦。更多详情请扫码进群了解。
往期推荐