在数据可视化中,地图可视化是高频应用的一种。我们在一些新闻报道和商业杂志上,会经常看到运用地图来分析展示商业现象,这样的利用地图来反映和分析数据的形式叫数据地图。
数据地图可以最直观的表达出数据之间的空间关系,因此在很多数据分析场景中被广泛应用,这里我先列举一些常用的数据地图类型和应用场景,第二部分再告诉大家如何快速制作这样的可视化地图:
1、点地图
点地图很直白,用来表示某个区域各个网点(特定位置)的数据,精准性高,可以快速定位到位置。
使用场景:点事件的分布,可以应用的场景很多,比如某一地区的公交站点分布、商场分布等等,复杂一点的像下面的特大意外事故追踪图,能准确快速地定位到事件的发生位置。
2、线地图
由点到线。大家对线地图可能应用不多,往往是因为线地图相对难绘制。不过线地图有时不仅包含空间、也包含时间,对于特殊场景的分析来说,应用价值特别高。
使用场景:骑行或者驾驶的线路分布、公交/地铁的线路分布,比如下面的纽约市出租车线路图
3、区域/钻取地图
由线到面。区域地图,也很常见了,最常见的就是行政地图,反映某一地区的自然、经济基本情况和区域特点。
使用场景:用来不同区域的某个特点分布。可以实现由省到市的逐级钻取,也可以实现对于某一特点的不同程度进行颜色、标签等区分。比如下图销售额实现由省到市的钻取,销售额越大颜色越深。
4、流向地图
流向地图常用来可视化源汇流(Origin Destination Flow)数据。源地和汇地可以是点,也可以是面。源地和汇地之间的互动数据,常用连接空间单元几何重心之间的线段来表达,线的宽度或颜色来表示源地和汇地之间的流向数值。每个空间位置可以是源地,也可以是汇地。
使用场景:流向地图多应用于区际贸易、交通流向、人口迁移、购物消费行为、通讯信息流动、航空线路等场景。
5、热力地图
热力地图用来表示地理范围内各个点的权重情况,一般以特殊高亮的形式显示。
使用场景:PM2.5的分布,当然也可以不局限于地图,比如说注册日期、年龄分布,产品喜好分布等等
如何快速制作数据地图?
关于这个问题,制作数据地图的方法已不新奇,总体来说有这么几类方案:
一、直接在excel里制作
绘制地图图形 + VBA宏语言
思路:用插入图形"任意多边形"绘制地图;每一个"任意多边形"赋予正确名称;对"任意多边形"赋值;利用VBA对"任意多边形"的值进行操作, 例如上色。
先准备一张所需要的地图图片,网上都有,可以下载,然后利用插入绘制多边形图片将地图中的区域描边
选定好的区域可以在左上角修改名称
将数据表中的数据和地图中的地区做关联,这里就要用到VBA了,代码:
- Sub ProvRefill()
- ActiveSheet.Shapes.Range(Array("shandong")).Select
- With Selection.ShapeRange.Fill
- .Visible = msoTrue
- .ForeColor.ObjectThemeColor = msoThemeColorAccent1
- .ForeColor.TintAndShade = 0
- .ForeColor.Brightness = -0.5
- .Transparency = 0
- .Solid
- End With
- End Sub
这段代码是修改地图所选区域的颜色的,其他功能类似,懂VBA的会觉得简单,不懂的可以自行百度。
二、excel插件集成
这类插件有很多,推荐Power Map for Excel 2013,下载安装之后可在工具栏的【插入】选项卡中找到Power Map
这里我准备了一组省市的销售额和利润数据,希望能够在地图上显示各个省的销售额分布,以及每个城市的销售/利润情况,选择数据,启动Power Map并新建演示
基于以上的目的,在这里我要建立两个图层,一个用于展示各省的销售额分布,另一个用于每个城市的销售/利润对比。
图层一:省销售额
区域选择省,地理和地图级别选择省
选择区域可视化的图表,数据展示销售额。
设置中修改颜色和色阶
图层二:城市销售利润
区域选择城市,地理和地图级别选择城市
选择簇状柱形图的图表,数据展示销售额和利润。
最后播放展示效果,一个简单的数据地图就完成了:
三、可视化软件做数据地图
除了Excel之外,还有更快的数据地图制作方法,那就是利用一些可视化地图制作软件,比如一些gis地图工具、BI工具FineBI、tableau等,因为大部分的gis地图工具都要收费,这里我就用免费的FineBI给大家实操一下
下面是原始数据:
链接好数据源后导入数据,创建新的仪表板。然后处理数据,识别地理信息。这里有两种方式来识别地理信息:一种是让系统根据城市名来识别,选取城市字段——转化为地理角色,系统会自动根据城市名字识别创建经纬度,另一种是直接通过经纬度数据来识别,系统会自动识别。
然后拖拽数据字段制作图表,系统自动进行经纬度或者行政区名的匹配确认,一键生成地图
最后根据自己的个人爱好或者分析目标,加数据警示、点线面的颜色大小处理,或者酷炫的动态效果。
一个经典的热力地图就完成了:
除了上述方法以外,用python和echarts也可以完成数据地图的制作,但是需要有一定的代码基础,时间原因我就没有写出来给大家看。关于数据地图的制作,大家有空可以自己动手练习。