查看原文
其他

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,不断更新的制图模板,随心更改样式,轻松一键制图。现在积极参与高下制图内测,更有机会获得正式版会员,享受轻松作图哦。更多详情请扫码进群了解


   


欢迎扫描👇二维码添加关注

 

 


  




往期推荐

新世野|在作图上,经济学人都在犯错,你该如何避免?

经济学家的数据可视化指南

新世野 | 世界上有多少人一起网抑云?索尼让音乐被“看见”


戳下面的点赞,收藏,再看啦


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

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