老版本设置横坐标只需要在LineData构造函数里面传入一个字符串数字就可以了。
LineData data = new LineData(xList, dataSets);
但是新版MpChart的LineData删除了这个方法,如果想保持原有逻辑,可以这样实现:
XAxis xAxis = lineChart.getXAxis();
//x轴显示在底部 默认为顶部
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//隐藏竖向网格线
xAxis.setDrawGridLines(false);
//设置x轴最小值 默认为0
xAxis.setAxisMinimum(0f);
//设置x轴最大值 不设置会自动生成
xAxis.setAxisMaximum(xList.size() - 1);
//设置x轴最小间隔
xAxis.setGranularity(1f);
//设置x轴显示的条目数量 默认为6(不建议设置 设置多了容易挤在一起)
//xAxis.setLabelCount(xList.size());
//设置x轴标签显示在每个区域的中间(除特定情况不建议设置,数据会不对齐)
//xAxis.setCenterAxisLabels(true);
//设置x轴生成规则 value在AxisMinimum与AxisMaximum之间 return为索引对应的展示内容(String)
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
try {
return xList.get((int) value);
} catch (Exception e) {
return (int) value + "";
}
}
});
如果不想将x轴直接设置一个固定的list,可以重写ValueFormatter的规则。