本文根据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



MPAndroidChart 设置X轴数值不显示_数据


解决的办法有两条,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处截断。图中数据的差距不再那么大了。 

MPAndroidChart 设置X轴数值不显示_坐标轴_02

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标志。如下图。

MPAndroidChart 设置X轴数值不显示_坐标轴_03

得到下列所示的图。

MPAndroidChart 设置X轴数值不显示_数据_04

3.在上图新添加的数据系列上,点选右键,将图表类型改为散点图。得到如下图表。此时数据分布在y轴上。

MPAndroidChart 设置X轴数值不显示_数据_05

4.去掉坐标轴。在上述图表的第二坐标轴的x轴上,点选右键,在弹出的坐标轴格式上,将坐标轴及刻度线标签均取消,同样的方法,将右边的y轴也去掉。同时将y轴的刻度值也去掉。即成如下的图表。

MPAndroidChart 设置X轴数值不显示_数据_06

5.将y轴上点添加刻度标签。本步需要用到一个Excel的插件XYChartLabeler(http://appspro.com/Utilities/ChartLabeler.htm),可以对点添加标签。下载安装后在工具栏上如图所示。

MPAndroidChart 设置X轴数值不显示_数据_07

选择y轴的点后,再选择Add Chart Labels 后,出现下列图示

MPAndroidChart 设置X轴数值不显示_坐标轴_08

在Select a Label Range中选择第2步表格的H1:H13的数据作为点的标签。其位置设为左边,得到下示图表。

MPAndroidChart 设置X轴数值不显示_数据_09

6.最后一步,添上波浪形的图形,最终成图。

MPAndroidChart 设置X轴数值不显示_数据_10

完成上述图表的核心思想,是用点的标签代替y轴上的刻度上的标签,达到以假乱真的目的。这种方法似乎有点繁杂,简单的做法就是先去掉刻度上的标签,然后再一个一个地添加文本框,来代替刻度上的标签。