地图可视化,在Excel上也是一片广阔天地,在李强老师的手下,有精彩的表现,后期【Excel催化剂】和【Excel知识管理】给大家再作深度优化,做成模板,放到Excel催化剂插件中,一键完成高级地图图表输出,欢迎继续关注。
数据地图,因为地理信息的加持,信息丰富,直观明显,广泛地应用于多个行业,数据分析必备利器。那么,制作数据地图通常有哪些方式呢?
今天跟大家分享数据地图的三种制作方式。
方式一:通过Excel制作数据地图
本文大篇幅在介绍这种方式的具体操作方法,共分为四个步骤。概括来说其主要通过自定义矢量地图和VBA编程来为矢量地图填充颜色及设置透明度的方式实现。话不多说,还是先上效果图:
首先是全国省份色温图,点击单选按钮可切换不同指标。另有下拉列表可选择单击各省份时,是显示该省份标签,还是下钻到该省份的各城市色温图;下钻到各城市后,依然可以通过点击单选按钮切换该省份各城市的不同指标色温图。我们可以利用其查看各省市的经济、人口、销量、份额等多个指标色温图,并可按需求及特定格式设置标签。也可增加逆序条形图辅助查看数据。单选按钮切换指标,尽显数据灵动之美。
01
—
准备全国各省市矢量图
色温图素材的准备分为三部分:
- 准备全国各省及分省各城市矢量地图
B.为各省份及各城市的矢量图形添加有意义的名字。这里以新疆为例,点击新疆矢量图,在左上角名称输入框内键入"新疆",目的是方便VBA代码后期通过省份名称进行调用。
注:前人栽树,后人乘凉,更多精彩内容详见刘万祥老师的《用地图说话》图书及范例。
C.将命好名字的各省地图单独放置到一张工作表中;将已经命好名字的各省市矢量图,按照省份顺序排成一行,放在"各省矢量图"工作表中。
以便于后期通过定义名称动态查询引用图片。如果对该方法尚不清楚,请参考之前的文章Excel VS Tableau省市交叉销售地图。
02
—
制作全国各省份色温图
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:编写单击突显子程序:单击任一省份时,该省份矢量图边界变成红色线条,同时之前选中的省份矢量图边界的红色线条消失。
单击突显所选省份效果如下:
单击省份向下钻取效果如下:
注意:这里面用到了前面提及的定义名称动态引用图表。这个方法与之前的文章Excel VS Tableau省市交叉销售地图用到的方法基本一致,只是在细节处理上略有不同:本例中是将图形排成一行,而不是一列。定义名称省份色温图=INDEX(各省矢量图!2:2,MATCH(Province_map!C4,各省矢量图!1:1,0)),然后插入任一图片,将该图片设置为“=省份色温图”,即完成了对各省份色温图的动态调用。
Step2:编写批量指定宏程序。一次性为所有省份添加改宏,避免逐个省份添加。运行如下宏代码,则可以为全国各省份均添加单击突显省份效果。下图中:
ActiveSheet.Shapes(I).OnAction= "'thisworkbook.user_click_Nation'"语句,为各省份地图板块均赋予了前面定义过的宏user_click_Nation。
2.6为矢量地图设置标签,分为两个步骤:
Step1:编写批量添加标签程序,以下代码用于为各省份添加标签。
标签值设置方法:以上代码通过for循环,分别为各省份对应的地图板块设置标签值公式,将标签值设置为E列。当前省外之外,标签值显示为空。
Step2:通过提前定义好标签格式,并在准备标签数据时引入Text函数,可保证在数据地图上的标签按照所需格式显示。
03
—
制作分省份倒序条形图
这一部分为色温地图的补充内容,倒序条形图可以直观地辅助分析。制作逆序条形图,需准备如下数据源,通过加微量的方法,确保排序时不会出现相同值导致错误。继而通过查询函数,生成AE:AG列数据用于制作条形图。
AL列数据用于另外生成一张条形图,可以用来突显当前选中省份。也即下图为两个条形图拼合而成,在拼合过程中设置了背景为透明。
注:这里没有采用添加序列的方式,主要考虑到,如果不是条形图而是堆积条形图,则添加序列的方式将不再适用。
04
—
制作分省份各城市色温图
分省份各城市的制作方法与以上全国省份色温图的做法基本相同。
不同之处在于:
A.提取各省份数据时,用到了之前Excel连接SQL Server数据库一文中的数据库连接模块。并通过以下代码,将选中省份数据从数据库汇总筛选出来,粘贴到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上发表过巅峰之作,让我印象深刻,叹为观止。
原文地址及插件下载链接如下:
1.Excel插件方案——数据地图1.5 百度版
http://club.excelhome.net/thread-1312688-1-1.html
2.Excel插件方案——数据地图1.9 百度版
http://club.excelhome.net/thread-1331097-1-1.html
在以上网址链接最下方,下载DataMap For Excel 4.0并安装。安装后会在开发工具右侧显示名为"地图"的菜单项,选中后会弹出如下诸多功能。
这种Excel与公共地图服务以及内嵌矢量地图的集成,使在Excel里做基于地图的可视化分析成为可能。不过我也"惊喜"地发现,该插件已经开始商用收费了,年使用费用200元。效果如下图:
本文只是单纯地为大家提供一种新的解决方案,探讨一种新的可能,大家酌情考虑,自行选择,并不做任何推荐。
结束语:制作数据地图是数据分析人员的一门必修课,具体使用什么工具或方法,需要结合所处行业、公司数据文化、个人偏好和技能储备等多方考虑,条条大路通罗马。