Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1521940
  • 博文数量: 465
  • 博客积分: 8915
  • 博客等级: 中将
  • 技术积分: 6365
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-30 15:05
文章分类

全部博文(465)

文章存档

2017年(33)

2016年(2)

2015年(4)

2014年(29)

2013年(71)

2012年(148)

2011年(178)

分类: IT业界

2012-01-17 20:44:51

制作自己的数据地图

在接下来的3节里,我们将介绍3种制作填色型数据地图的方法。这3种做法各有其技术特点和表现效果,可适用于不同分析场景下的需求。

分档填色经典做法

最常见的数据地图形式是分档填色型热力地图(HeatMap)。由于国内目前尚无权威译名,本书把HeatMap翻译为热力地图,作为一种可视化技术,有时也直接称做HeatMap。分档填色型热力地图是将各区域按数值分为几个层级,不同层级的图形填充不同的颜色。

作图思路

将指标数据的范围划分为几个分档区间,分别准备不同的填充色。将各指标数值与设定的分档区间进行匹配查找,得到相应的填充颜色,然后使用宏按此颜色填充对应的地图图形。

作图步骤

1.按图3-1准备数据地图模型。

图中B~C列为各省的指标数据,其余部分后面再讲解。

2.设置分档阈值和图例。

假设要将地图按数据大小分为5档进行填色。

I列输入各分档区间的下限数值,如第2档的数值区间为0.2~0.4,就在I12单元格输入0.2;在J列输入color1~5字样。I11:J20区域将作为颜色分档的查找表,可将其名称定义为color_table,便于引用。为单元格或单元格区域命名的方法是:选中区域后,在Excel左上角的名称框中输入相应的名称,回车即完成命名。

 

 

 

F列填入由浅到深的颜色,代表数值由小变大,并分别命名为color1~5。颜色的变化梯度应与分档间距成等比例,以反映数量变化。如何科学合理地设置地图颜色,可参见附录A.1的内容。

G列填入分档区间的文字标签。本例中使用公式自动转换,如:

G11=CONCATENATE(I11,"~",I12)

单元格区域F11:G20将在后面被引用为地图的图例。

3.查找各省颜色号。

经过以上设置后,在D列使用公式为各省查找颜色号,如:

D11=VLOOKUP(C11,color_table,2,1)

注意VLOOKUP的最后一个参数值为“1”,即使用模糊查找模式,意思就是根据C11的值,在color_table区域(即I11:J20)查找不大于C11的最大值,并返回相应行第2列的值。将此单元格中的公式向下拖拽复制至整个D列。

以图3-1中的数据为例,C12北京的数据为58.0%,那么color_table 中不大于58.0%的最大数值为0.4D12的公式将返回color_table0.4所在的第3行的第2列,也就是color3。而color3作为名称指向单元格F13,所以就用F13的颜色去填充北京的图形。

4.插入地图图形。

2.5节准备好的已命名的地图图形复制到模型中,本例中放置在U11:AB32区域(图 3-1中未显示,请参阅范例文件)。请确保各省图形的命名与B列的省份名称一致,如选中湖北的图形,名称框中应显示湖北。若需调整地图的大小,可先将各省图形组合,然后按住Shfit键调整至合适大小,再取消组合为独立的图形。

5.编写填色的宏代码。

通过录制宏 1获得关键代码,修改、编写如图3-2所示的宏代码。

 

 

 

 

这段宏其实很简单,关键代码只有一句话,就是对各省的图形使用D列颜色栏的值作为名称所指向的单元格的填充色进行填充。

使用窗体控件或矩形框绘制一个按钮,输入文本填色,通过鼠标右键为其指定宏为fill_color

6.单击按钮测试功能。

现在单击按钮运行宏,你会发现,根据其数据与分档阈值的匹配情况,每个省的图形被填充了相应的颜色。检查数据看所填色是否正确,以确认模型无误。

7.整合完善地图。

为完善地图,对区域F11:G20进行拍照 2,将拍照图片放置到地图的左下角,作为图例;再对各省图形所在区域U11:AB32进行拍照,得到一个整合的地图图形,放置到L11:S32处。导出地图时,只需要复制这个拍照对象就可以了。

本做法最初的思路来源于Jorge Camoes博客上的一篇日志,见参考文献1。当我按照他的视频教程,摸索制作出中国地图的时候,简直兴奋不已。在博客发布后,更受到众多读者们的欢迎和喜爱,这鼓舞着我继续琢磨更多的地图做法。当然,现在这里介绍的做法较该视频已经做了很大的改进,更加简洁清晰,更加利于初学者理解和制作。

本做法涉及的知识点有:VLOOKUP函数模糊查找、定义名称、录制和编写宏、拍照等。当然,最重要的还是这种构建模型的精妙思路。

 

 

懒人直接用

现在,要使用分档填色数据地图的时候,只需要简单的3个步骤即可。在随书范例包中找到并打开“3.1分档填色经典做法.xls(或xlsm文件,启用宏。

C列输入各省的指标数值。为效率起y 见,建议使用VLOOKUP函数从其他地方查找引用过来。

设置分档阈值和图例。在I列设置分档区间的下限,如有必要,更改F列(图例)的填充色。范例中预设了5种配色,需更多配色方案请参见附录A.1

单击填色按钮,刷新热力地图,OK。导出地图时复制L11:S32处的拍照图片即可。

范例文件的模型可以支持10个分档,不足10档的可以不填。不建议使用更多的分档。

如需在地图上增加区域名、指标值,可以在各省图形的上面绘制一个文本框,然后将其值链接到相应的单元格。一般不建议添加这些,地图上少放些内容,会显得更加清晰。

如需按华东、华南等大区域进行数据分析,可以将某几个省的图形组合起来之后再命名。这时候你的数据源也要按华东、华南等区域进行组织。简言之,将大区作为一个区。

 

 

 

——本段文字节选自《用地图说话:在商业分析与演示中运用Excel数据地图》

图书详细信息:http://blog.chinaunix.net/space.php?uid=13164110&do=blog&id=3059336

阅读(3983) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~