怎么在 Excel 上做数据地图?

2017-11-6 分享达人 设计管理与成长

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

作者:李启方
链接:https://www.zhihu.com/question/30073147/answer/232926762
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Excel有个Power Map的功能,5分钟就能搞定一个简单的数据地图。

第一步:下载安装Power Map Preview for Excel 2013,下载完后可在工具栏的【插入】选项卡中找到Power Map。

第二步:准备数据。这里我准备了一组省市的销售额和利润数据,希望能够在地图上显示各个省的销售额分布,以及每个城市的销售/利润情况。

选择数据,启动Power Map并新建演示。

第三步:绘图

基于以上的目的,在这里我要建立两个图层,一个用于展示各省的销售额分布,另一个用于每个城市的销售/利润对比。

图层一:省销售额

区域选择省,地理和地图级别选择省

选择区域可视化的图表,数据展示销售额。

设置中可以修改颜色和色阶


图层二:城市销售利润

区域选择城市,地理和地图级别选择城市

选择簇状柱形图的图表,数据展示销售额和利润。

第四步:播放展示效果


如果是复杂的地图比如流向地图、动态地图需要写VBA开发,比如下图这张美国飓风的动效轨迹图


1、素材准备

① 一张带经纬线的美国·大西洋地图。因为公共服务提供的经纬度并不精确,各大地图工具都不带经纬度。当初翻遍了网络,在德克萨斯大学的地图图书馆NHC Blank Tracking Charts,找到了这张地图。

②从Hurricane & Tropical Cyclone Details上下载Irma飓风的移动路径数据,包括日期时间、经纬度、风力等。

2、处理数据

经纬度、风速、风压等去单位。

日期和时间要稍作处理转换成Excel便于处理的日期数据。

时间间隔前期基本上都是每6小时的记录一次数据,后期每3小时甚至每小时就记录一次,这里为了便于后期好处理,统一留下每6小时的数据。

3、绘制气泡图

将上面的地图插入到表格中,然后在上面绘制一张气泡图,气泡图的X轴数据就是经度数据,Y轴数据就是纬度数据,气泡大小取自风力大小的数值。

设置绘图区格式,根据经纬度坐标的读数来设置气泡图中坐标轴的最大值和最小值,并且使坐标间隔和地图上的经纬度间隔一致,比如这里间隔是5,这样可以保证气泡图绘制的数据点与地图中实际的经纬度相匹配。

拖拽移动图表绘图区的边框,使它与底层大西洋地图中的坐标轴线相互重合。然后隐去轴数据,边框什么的都设置“无”。

4、制作动效

【思路】

要想实现轨迹的动效,这里可以使用滑动条控件来控制时间,每滑动一次,时间就增加6小时。

滑动条所链接的单元格把数据传递给图表左侧的表格区域中,然后通过对时间点的查询得到相应的经纬度数据和风力风压数据。同时再由这个时间数据生成图表的两组数据源,由此构造形成整个控制链,并完成滑动条对图表的最终控制。

进一步,我想实现滑动条的自动控制,这里则需要通过VBA代码来实现,让图表自动播放。

【操作】

1、用VBA写两个宏,一个控制启动,一个控制停止。

2、绘制4个控件,分别代表启动、停止、循环、滑动条,指定上述宏。

3、滑动条控件格式指定左侧单元格,左侧单元格会记录滑动数据,上方data & time调用此单元格数据。

4、准备动态数据

为实现以上动态效果,其实在气泡图中准备了两组数据。一组显示当前时间点之前飓风所走过的所有路径点,另一组则标记当前时间点飓风所在位置。

这里需要用到LOOKUP函数,并调用data & time单元格数据。

第一组数据选取小于等于当前时间点的所有数据,并将其他数据点设为#N/A。

=IF($A9<=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())

第二组选取与当前时间相匹配的数据,其他数据也设为#N/A。这里,#N/A不会在图表中显示数据点。

=IF(A9=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())

5、气泡图绑定数据源

至此,就都搞定了,图表中的文本框则可以通过链接单元格,直接从单元格当中获取数据点的信息。

此外,这里除了气泡图,图表中还添加了一组柱形图来展示风力,数据绑定的操作形式和上面气泡图如出一辙。

更多回答


DATA MAP:地图数据及可视化神器级EXCEL工具

“ 火箭君相信,有非常多的同学在面对画地图这件事上困扰不已。曾经,我们介绍过微软出品的Power Map套件可以在Excel中作出非常酷炫的地图可视化效果。然鹅!微软的Bing地图在国内数据不充分导致我们无法很好的用他。今天火箭君将会介绍一款神器,虽非大厂出品但是实用无比哦~

Data Map登场

Data Map是由国内Excel大神开发的一款基于百度地图的数据可视化Excel插件。对于火箭君来说,这个工具的实用程度,已经达到“微信级必装”的程度!

这个插件是作者看着各类帮助文档一点一点开发出来的,火箭君觉得 这个工具充满着2000年代浓浓的极客精神


——有工具则用工具,没有工具创造好工具给自己用

在安装了这个工具之后,你的Excel就会多出一个标签栏,满满都是各类地图功能



功能1:地址解析服务

百度地图自带地址解析服务(就是把地址变成经纬度,或者把经纬度转换为地址)。然而这种服务往往需要有编程基础的人来使用——Datamap直接用Excel公式把这个问题解决了。


GeoCoding()函数可以让你把一个地址通过百度地图的引擎,转化为经纬度坐标。火箭君来做个演示:

而GeoReverse函数则可以把经纬度转换成标准化地址:


最后,火箭君找来一份上海的危险品运输企业地址清单,这个工具可以把杂乱的地址标准化,切分出各级别的字串。来感受一下:


功能2:地图坐标

Datamap可以很方便的把大量地址信息转化为经纬度,然后放到地图上。火箭君找来了上海所有停车场的地址信息,利用上面介绍的功能把地址转化为经纬度后,随手就先标记出了300个停车场


功能3:该有的基本都有

当然啦,普通的画线,阴影图之类的自然不在话下~


值得一提的是,由于百度地图加持,你可以在datamap的阴影图可直接输入输入区域名。例如输入:浦东新区,500。插件自然会把浦东新区高亮出来,填入正确的颜色哦!非常实用

更多功能请自行挖掘哦~



蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

标签: 蓝蓝设计/怎么在 Excel 上做数据地图?


Powered by emlog 京ICP备12006971号-1 sitemap