zoukankan      html  css  js  c++  java
  • 制作自己的数据地图

    制作自己的数据地图

    在接下来的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://www.cnblogs.com/broadview/archive/2012/01/16/2324065.html

  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/broadview/p/2325002.html
Copyright © 2011-2022 走看看