Excel图表自定义设置相对比较自由,这为图表制作提供了很大便利,但并不是所有的图表制作过程都让人感到轻松和愉悦,实现某类图表的过程完全是一个考验耐心和毅力的过程。图11.4-1就是这样一个案例。

作图需要耐心[苦肉]-Excel22

图11.4-1 作图需要耐心

案例介绍与分析

图11.4-1是一个典型的热力地图,在本书的图8.2-5案例中,曾使用单元格格式设置实现过,此处这个案例的实现则完全没有借助于任何非图表元素。

在Excel中根本找不到适合实现图11.4-1案例的基础图表类型,这看上去是一个面积填充图表,而Excel的面积类图表完全不支持使用一对数值坐标。具有一对数值坐标的图表仅有XY散点和气泡图,XY散点又没有填充类型图表,气泡图的气泡填充在这个案例实现中根本没有意义。

案例实现剖析

电脑中图片可以被分为两类来处理:点阵和矢量,本书11.3节已经让我们了解到:Excel以矢量方式处理图表对象及图表元素。既然如此,可不可以将图表变成点阵?回答是完全可以!这个想法看起来并没有问题,但要将一幅地图完全按点阵方式绘制到Excel图表中,想象一下十字绣,便知其工作量的巨大。

基于上述考虑,比较适合的基础图表类型仅有XY散点图。为此笔者花费了2天时间构建了该图表的数据表,这完全是一个“海量”的数据表,共有73列,最大12306行数据。好在Excel图表支持如此大量的数据,最终实现如图11.4-2所示。

作图需要耐心[苦肉]-Excel22

图11.4-2 图11.4-1案例最终实现

如图11.4-2所示图表中,每个省、直辖市和港澳台各占一个图表系列,省市轮廓和省会城市,共计使用了36个XY散点图系列,没有任何其他类型的图表系列。图例部分使用照相机对单元格拍照后,粘贴到图表。由于每个系列所引用的X和Y值都完全不同,所以将这些图表系列加入到图表中又花去了一个上午的时间,这完全是机械和重复的劳作,枯燥且缺乏效率。

由于一个个手工更改图表系列的数据标记颜色,烦琐且没有效率,笔者使用了工作表上的一个按钮来驱动以下VBA代码进行颜色的更新:


程序代码:11.4-1 图11.4-1热力地图颜色更新

作图需要耐心[苦肉]-Excel22


为了提高效率,图11.4-2从数据构建到数据加入到图表,整个过程都可以使用VBA代码。从某种意义上来讲,这个案例已经是一个相对完整的图表模板了,读者其实完全可以不去理会这些数据的来龙去脉,直接套用即可,因为大部分的图表设置并不需要每次都发生变动。图11.4-1案例的实现过程,更多的是告诉读者使用Excel制作图表,需要我们耐住性、沉下心。也许有读者会疑问:为何要如此繁杂地去实现这个图表?抛开使用图表元素,本书中图8.2-5案例的实现相对而言就要简单很多,当然也可以使用自选图形来完成,但和图表结合最好的还是使用原生图表元素。

另类实现

图11.4-3右侧图表是使用本书图8.2-5案例的原始数据源,采用三维曲面图的另类实现。这个图表数据引用了248列×202行数据,通过设置数据矩阵中代表每个省、直辖市和港澳台的不同数据点数值,在Excel曲面图三维空间中绘制了类似图11.4-3左侧的效果,然后调整三维视图的上下仰角[旋转:Y值]为90°来实现,即这个图表的俯视图。

作图需要耐心[苦肉]-Excel22

图11.4-3 图11.4-1案例的另类实现

作图需要耐心[苦肉]-Excel22

小技巧


去除曲面图的曲面网格:

曲面图默认设置中,曲面具有网格,如要设置为图11.4-3右侧图表样式。

  1. 在Excel 2003中需选中单个图例标示,分别单击鼠标右键设置格式,设置边框为无。
  2. 在Excel 2007/2010中需选中单个图例标示,分别单击鼠标右键设置镶边格式,设置边框颜色为“无线条”。

由于曲面图的特点,这个图表并无明显的系列,图表的色阶变化完全依赖数值(Z轴)的刻度最小值、最大值、主要刻度单位的设置调整来实现。和图11.4-2所示图表相同,这个案例的色阶动态变化也完全依赖于VBA来实现。这个图表从实用角度来看,首先比较消耗电脑系统资源,其次是图表的显示效果并不是很好,所以并不建议读者学习,本节目的只是让读者加深对曲面图的理解和学习。