1、关于自定义显示X轴
效果图:
需求:
展示多个建筑的占地面积和建筑面积对比图(图中数据为虚构),现在设定X\Y轴的数据为
String[] buildingNameList = {"房子A","房子B","房子C"};
Float[] buildingArea1 = ["234","396","155"];
Float[] buildingArea2 = ["234","396","155"];
要把X轴自定义标签,需要重写getFormattedValue()函数,代码如下:
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
int index = (int)value;
if (index>=buildingNameList.size() || index<0){
return String.valueOf(index);
}
return buildingNameList.get(index);
}
});
注意:我遇到的问题就是参数 value 可能会遇到负值,导致数组越界,经过观察,发现此函数会根据实际的绘制情况来调用,例如X轴标签当显示太密集时,会隐藏某些列的标签。因此只需像上述代码,做一个判断就解决了。