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

  • 相关阅读:
    Dom-Align
    antd Dialog 学习笔记
    setState 同步 与异步
    移动端使用iframe碰到的那些坑
    谈页面上下滑动时,页面顶部导航等部分元素的定位方式发生改变
    一款table结合分页的插件
    监听页面滚动时间时所碰到的一些坑
    值得收藏的前端大牛博客
    后端时间转js时间,主要用于取倒计时
    论jquery与vuejs结合时的部分问题
  • 原文地址:https://www.cnblogs.com/broadview/p/2325002.html
Copyright © 2011-2022 走看看