本文根据Broken Y Axis(http://www.peltiertech.com/Excel/Charts/BrokenYAxis.html)修改而成。
在作柱形图或条形图时,数据中若有特大值,作出的图表会因为数据分布差距太大,导致比例不协调,取值小的数据被淹没了。如下图。
May | June | July | |
London | 1,234,565 | 1,452,369 | 1,478,852 |
Paris | 2,363,645 | 24,568,876 | 5,562,413 |
Madrid | 23,645,254 | 3,211,654 | 5,857,421 |
Brussels | 5,914,753 | 5,544,221 | 3,620,015 |
Lisbon | 5,824,676 | 4,541,258 | 4,015,876 |
Munich | 2,501,478 | 6,325,698 | 4,569,872 |
解决的办法有两条,1.使用对数刻度;2.使用第二坐标轴。不过这两种方法总不是令人那么满意。对数刻度不太让人容易理解,而第二坐标轴却失去了直观性,不易比较。
当然也可以从某个地方将y轴截断,其最终效果如文末所示。
作法步骤如下:
1.将上表中的数据,如果大于8000000,则减去13000000,不然,数据不变。其公式形如=IF(B3>8000000,B3-13000000,B3)。表变为
May | June | July | |
London | 1,234,565 | 1,452,369 | 1,478,852 |
Paris | 2,363,645 | 11,568,876 | 5,562,413 |
Madrid | 10,645,254 | 3,211,654 | 5,857,421 |
Brussels | 5,914,753 | 5,544,221 | 3,620,015 |
Lisbon | 5,824,676 | 4,541,258 | 4,015,876 |
Munich | 2,501,478 | 6,325,698 | 4,569,872 |
注意y轴将在8000000处截断。图中数据的差距不再那么大了。
2.新建一个表格如下,假设是从F1到G13.
| F | G | H |
1 | Markers | Labels | |
2 | 0 | 0 | 0 |
3 | 0 | 1,000,000 | 1,000,000 |
4 | 0 | 2,000,000 | 2,000,000 |
5 | 0 | 3,000,000 | 3,000,000 |
6 | 0 | 4,000,000 | 4,000,000 |
7 | 0 | 5,000,000 | 5,000,000 |
8 | 0 | 6,000,000 | 6,000,000 |
9 | 0 | 7,000,000 | 7,000,000 |
10 | 0 | 9,000,000 | 22,000,000 |
11 | 0 | 10,000,000 | 23,000,000 |
12 | 0 | 11,000,000 | 24,000,000 |
13 | 0 | 12,000,000 | 25,000,000 |
选中从F1到G13的数据并进行复制,再选中表格,然后点选编辑->复制性粘贴,在弹出的选择性沾贴菜单上,将添加单元格为新建系列,数值(Y)轴在列,首行为系列名称选中,首列为分类x标志。如下图。
得到下列所示的图。
3.在上图新添加的数据系列上,点选右键,将图表类型改为散点图。得到如下图表。此时数据分布在y轴上。
4.去掉坐标轴。在上述图表的第二坐标轴的x轴上,点选右键,在弹出的坐标轴格式上,将坐标轴及刻度线标签均取消,同样的方法,将右边的y轴也去掉。同时将y轴的刻度值也去掉。即成如下的图表。
5.将y轴上点添加刻度标签。本步需要用到一个Excel的插件XYChartLabeler(http://appspro.com/Utilities/ChartLabeler.htm),可以对点添加标签。下载安装后在工具栏上如图所示。
选择y轴的点后,再选择Add Chart Labels 后,出现下列图示
在Select a Label Range中选择第2步表格的H1:H13的数据作为点的标签。其位置设为左边,得到下示图表。
6.最后一步,添上波浪形的图形,最终成图。
完成上述图表的核心思想,是用点的标签代替y轴上的刻度上的标签,达到以假乱真的目的。这种方法似乎有点繁杂,简单的做法就是先去掉刻度上的标签,然后再一个一个地添加文本框,来代替刻度上的标签。