2.6 通过中间层构造迷你组图
迷你组图可以方便地对一组数据进行对比展示。按照上节介绍的方法,将每个数据序列生成一个图表,然后将所有的图表组合在一起,虽然能够实现迷你组图,但这样做工作量略大,而且需要不断地调整图表位置,是一项毫无技术含量又费神的工作(Dirty Work)。
这里,可以采用分层处理的模式,将问题划分为原始表格、逻辑表格、图表后进行分别处理。通过逻辑表格,当前的数据能够一次性完成迷你组图的构建。原始表格存储的原始数据不需要进行额外的处理,逻辑表格对原始表格进行处理以满足能够显示为迷你组图的要求,在图表中调整图表的外观参数让其看起来更专业。
根据原始数据(见图2-1)可以很容易地创建出其折线图(见图2-2),但此时的折线图过于繁杂,以至于根本无法区别各个区域之间的对应关系。通过对逻辑表格的处理,让每个区域(数据系列)在图表中错开显示,如图2-25所示。在图2-25中,每个地区不同产品的销量都在折线图中展示出来了,但是它们并没有罗列在一起,而是把每个系列都做成了一个单独的折线图,构成了一组迷你组图。
图2-25 折线图构成的迷你组图
下面构造逻辑表格,用来连接原始表格和图表。
上述迷你组图中每条折线都是由一个单独的系列构成的,但是每个系列的数据都是不完整的,仅有部分数据以折线的形式在图中展示了出来。
根据上述特点构造逻辑表格,让各个地区的数据分列展示,部分数据如图2-26所示。
图2-26 逻辑表格
在逻辑表格中,各个区域的数据位置如表2-2所示。
表2-2 各个区域的数据位置
在上述逻辑表格区域插入折线图,即可生成图2-25所示的迷你组图。生成迷你组图后,可以根据需要对坐标轴、网格线、图例等进行调整。
针对数据系列“地区1”,仅在其对应的分类(产品1到产品6)内是有数据的,在其他区域的数据是“#N/A”或空。地区1的数据位于逻辑表格中的第1列到第6列的位置,其余列的值为空或“#N/A”。绘制折线图时,地区1仅仅在图表中最左侧的第1个区块内有折线展示,其余区块内都没有折线展示。
同理,针对数据系列“地区2”,仅在其对应的分类(产品1到产品6)内是有数据的,在其他区域的数据是“#N/A”或空。地区2的数据位于逻辑表格中的第7列到第12列的位置,其余列的值为空或“#N/A”。绘制折线图时,地区2仅仅在图表中左侧的第2个区块内有折线展示,其余区块内都没有折线展示。
以此类推,将每个地区的数据都以一个独立的图表显示出来。
原始图表与通过中间层绘制的迷你组图的对比如图2-27所示,从中可以看到,迷你组图更能体现出数据的差异等情况。
图2-27 原始图表(上)与通过中间层绘制的迷你组图(下)的对比效果