最近开发使用到折线图,
想要的效果是这样的:看下图
做完之后发现是这样的: 看下图
问题点:数据没有平均占满图表,右边空出一块不太好看
好在经过多次测试终于发现是哪里引起的,然后做出了第一张图的效果,
xAxis.setAxisMaximum(xData.size());//设置x轴的自定义最大值
我在xAxis.setAxisMaximum()填的是我存放数据名称的集合的size,
当我的size 是3的时候X轴显示的是 0、1、2、3
我要的X轴显示应该是0、1、2才对呀
然后我就在xAxis.setAxisMaximum(xData.size()-1);减1 就可以
可是当我集合的size只有一条的时候又出问题了 value是-1 ,又报错。
xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { //value等于-1 if (xData.size()>(int)value){ return xData.get((int)value); } return ""; } });
然后我的解决方法是对数据集合做了一个判断
int size; if (xData.size()==1){ size=1; }else { size=xData.size()-1; } xAxis.setAxisMaximum(size);//设置x轴的自定义最大值
在xAxis.setValueFormatter()也做一个判断如下
xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { if (xData.size()>(int)value){ return xData.get((int)value); } return ""; } });
问题解决,当只有一条数据的时候getFormattedValue 还是会return一次" ",但这不影响,当数据只有0条的时候图表就显示无数据就可以了