欢迎光临
我们一直在努力

三种方式制作数据地图

数据地图,因为地理信息的加持,信息丰富,直观明显,广泛地应用于多个行业,数据分析必备利器。那么,制作数据地图通常有哪些方式呢?

今天跟大家分享数据地图的三种制作方式。

方式一:通过Excel制作数据地图

本文大篇幅在介绍这种方式的具体操作方法,共分为四个步骤。概括来说其主要通过自定义矢量地图和VBA编程来为矢量地图填充颜色及设置透明度的方式实现。话不多说,还是先上效果图:

首先是全国省份色温图,点击单选按钮可切换不同指标。另有下拉列表可选择单击各省份时,是显示该省份标签,还是下钻到该省份的各城市色温图;下钻到各城市后,依然可以通过点击单选按钮切换该省份各城市的不同指标色温图。我们可以利用其查看各省市的经济、人口、销量、份额等多个指标色温图,并可按需求及特定格式设置标签。也可增加逆序条形图辅助查看数据。单选按钮切换指标,尽显数据灵动之美。

准备全国各省市矢量图

色温图素材的准备分为三部分:

准备全国各省及分省各城市矢量地图

B.为各省份及各城市的矢量图形添加有意义的名字。这里以新疆为例,点击新疆矢量图,在左上角名称输入框内键入"新疆",目的是方便VBA代码后期通过省份名称进行调用。

注:前人栽树,后人乘凉,更多精彩内容详见刘万祥老师的《用地图说话》图书及范例。

C.将命好名字的各省地图单独放置到一张工作表中;将已经命好名字的各省市矢量图,按照省份顺序排成一行,放在"各省矢量图"工作表中。

以便于后期通过定义名称动态查询引用图片。如果对该方法尚不清楚,请参考之前的文章。

制作全国各省份色温图

2.1准备全国各省份数据

将其放置在"data"工作表中。通过B:D列,查询引用当前指标对应数据(C列),并计算色温图透明度(D列)。

2.2在全国地图中,插入六个单选按钮

单击右键"编辑文字",分别为各单选按钮命名。接下来,设置控件格式,将单元格链接设置为"全国map"工作表B4单元格。B4单元格的值,后期将作为参数传递,以判断当前所选指标。

2.3为六个单选按钮赋宏

按下ALT+F11键,插入如下代码,其可实现勾选单选按钮时,会根据单选按钮对应的指标,为各省份矢量图填色和设置透明度。

右键点击单选按钮,指定宏。找到以上代码的名称,即“fill_color”程序,选择确定即可。

2.4添加组合框控件

控制单击省份图形时的效果,是显示该省份标签还是向下钻取到该省份各城市。链接单元格设置为全国map工作表AO4单元格。

2.5为各省份图形添加单击突显效果。

这里分两个步骤:

Step1:编写单击突显子程序:单击任一省份时,该省份矢量图边界变成红色线条,同时之前选中的省份矢量图边界的红色线条消失。

单击突显所选省份效果如下:

单击省份向下钻取效果如下:

注意:这里面用到了前面提及的定义名称动态引用图表。这个方法与之前的文章用到的方法基本一致,只是在细节处理上略有不同:本例中是将图形排成一行,而不是一列。定义名称省份色温图=INDEX(各省矢量图!$2:$2,MATCH(Province_map!$C$4,各省矢量图!$1:$1,0)),然后插入任一图片,将该图片设置为“=省份色温图”,即完成了对各省份色温图的动态调用。

Step2:编写批量指定宏程序。一次性为所有省份添加改宏,避免逐个省份添加。运行如下宏代码,则可以为全国各省份均添加单击突显省份效果。下图中:

ActiveSheet.Shapes(I).OnAction= "'thisworkbook.user_click_Nation'"语句,为各省份地图板块均赋予了前面定义过的宏user_click_Nation。

2.6为矢量地图设置标签,分为两个步骤:

Step1:编写批量添加标签程序,以下代码用于为各省份添加标签。

标签值设置方法:以上代码通过for循环,分别为各省份对应的地图板块设置标签值公式,将标签值设置为E列。当前省外之外,标签值显示为空。

Step2:通过提前定义好标签格式,并在准备标签数据时引入Text函数,可保证在数据地图上的标签按照所需格式显示。

制作分省份倒序条形图

这一部分为色温地图的补充内容,倒序条形图可以直观地辅助分析。制作逆序条形图,需准备如下数据源,通过加微量的方法,确保排序时不会出现相同值导致错误。继而通过查询函数,生成AE:AG列数据用于制作条形图。

AL列数据用于另外生成一张条形图,可以用来突显当前选中省份。也即下图为两个条形图拼合而成,在拼合过程中设置了背景为透明。

注:这里没有采用添加序列的方式,主要考虑到,如果不是条形图而是堆积条形图,则添加序列的方式将不再适用。

制作分省份各城市色温图

分省份各城市的制作方法与以上全国省份色温图的做法基本相同。

不同之处在于:

A.提取各省份数据时,用到了之前一文中的数据库连接模块。并通过以下代码,将选中省份数据从数据库汇总筛选出来,粘贴到province_data工作表中J:N列相应位置,用于生成省市色温图和条形图。

B.通过以下代码,生成省市色温图。这里相当于通过for循环,通过判断当前选中的省份内城市名称(J5:J44单元格),为其设置对应的色温图。

C.这里会通过动态引用图片的方式,从以下后台数据表中动态引用图片, 将当前选中省份的色温图通过定义好的名称"省份矢量图"呈现在Province_map工作表中的指定区域。

方式二:通过BI软件Tableau或PowerBI制作数据地图

刚刚讲到这种Excel从省份下钻到城市的数据地图,肯定已经会有小伙伴说,这个用BI实现起来更容易,BI已然成为了房间里的大象,视而不见是自欺欺人。

Tableau当中,我们可以将省市设置好地理角色,将其设置为填充地图。

上图为用Tableau实现数据地图效果,后续会在本微信公号中分享Tableau的版本。

不过不要忘了,用Excel实现至少有两大好处:

第一,价格便宜,应用广泛。BI软件价格不菲,以Tableau为例,每年费用高达2000多美元,让人望而却步;PowerBI目前是免费的,但其如何实现及效果如何,笔者未曾尝试过,不便过多评论,大家有兴趣可以探讨。

第二,Excel制作此图,一劳永逸,后续只需修改数据,直接使用即可。

方式三:通过Excel插件Datamap制作数据地图

如果说小伙伴们觉得前述这种Excel制作数据地图的方法还是过于复杂,也不愿使用BI软件来做数据分析和可视化,这里也为大家提供第三种解决方案,那就是为你的Excel安装Datamap插件。曾经有名为flash418的Excel大神在Excelhome上发表过巅峰之作,让我印象深刻,叹为观止。

原文地址及插件下载链接如下:

在以上网址链接最下方,下载DataMap For Excel 4.0并安装。安装后会在开发工具右侧显示名为"地图"的菜单项,选中后会弹出如下诸多功能。

这种Excel与公共地图服务以及内嵌矢量地图的集成,使在Excel里做基于地图的可视化分析成为可能。不过我也"惊喜"地发现,该插件已经开始商用收费了,年使用费用200元。效果如下图:

本文只是单纯地为大家提供一种新的解决方案,探讨一种新的可能,大家酌情考虑,自行选择,并不做任何推荐。

结束语:制作数据地图是数据分析人员的一门必修课,具体使用什么工具或方法,需要结合所处行业、公司数据文化、个人偏好和技能储备等多方考虑,条条大路通罗马。

赞(12)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址