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、气泡图绑定数据源 至此,就都搞定了,图表中的文本框则可以通过链接单元格,直接从单元格当中获取数据点的信息。 此外,这里除了气泡图,图表中还添加了一组柱形图来展示风力,数据绑定的操作形式和上面气泡图如出一辙。 |
|