【背景】使用MPAndroidChart画柱状图,当y轴的value值比较小时,Y轴刻度就会出现重复显示的问题,如下:
【解决方法】:获取y轴左侧座标轴YAxis的实例化对象,有一个设置setLabelCount()方法,其可以强制设置y轴显示的文本刻度个数,所以我们在填充数据完毕后根据原默认画的刻度值进行强制调整即可,代码如下:
YAxis yAxis = chart.getAxisLeft();
Transformer transformer = chart.getTransformer(YAxis.AxisDependency.LEFT);
// ...minor dirty hack
MPPointD top = transformer.getValuesByTouchPoint(0, 0);
MPPointD bottom = transformer.getValuesByTouchPoint(0, chart.getHeight());
int diff = (int)(top.y - bottom.y);
// draw 2-8 axis labels
int count = Math.min(8, Math.max(diff, 2));
chart.getAxisLeft().setLabelCount(count, true);
【实现效果】:
【注意】:实际上并非治根的方法,Y轴显示的数据也并非重复,我们看到的重复只是因为y轴刻度的格式format 只显示整数,若把格式改为"0.00",我们将会看到不重复的数据,再次说明下,以面误导别人。以上的方法在想控制y轴显示的lebel数量时还是有一定作用的。