项目场景:
项目场景:设置MPAndroidChart显示部分x坐标
问题描述
MPAndroidChart设置后,滑动最后一个坐标 12 不显示
代码:
//实例化
mLineChart = findViewById(R.id.lineChart);
List<Entry> entries = new ArrayList<Entry>();
// 循环你的数据,向图表中添加点
for (int i = 0; i < 13; i++) {
entries.add(new Entry(i,i * 1000));
}
// 图表绑定数据,设置图表折现备注
LineDataSet dataSet = new LineDataSet(entries, "Label");
LineData lineData = new LineData(dataSet);
//图表标题
Description description = mLineChart.getDescription();
description.setText("历史数据折线图");
// 图表绑定数据值
mLineChart.setData(lineData);
//显示范围
mLineChart.setVisibleXRangeMaximum(4f);
XAxis xAxis = mLineChart.getXAxis();
// 设置X轴坐标之间的最小间隔
xAxis.setGranularity(1);
// 设置X轴坐标最小值
xAxis.setAxisMinimum(0f);
//关闭右侧y轴
mLineChart.getAxisRight().setEnabled(false);
//设置左侧y轴最大值
mLineChart.getAxisLeft().setAxisMaximum(15000);
// 刷新图表
mLineChart.invalidate();
原因分析:
设置MPAndroidChart显示部分x坐标
MPAndroidChart的设置左侧y轴最大值和设置右侧y轴不显示,进而导致最后一个坐标 12 不显示。
解决方案:
设置X轴坐标最大值,在数据的大小再加上0.1f,就可以显示全部x坐标
代码:
//实例化
mLineChart = findViewById(R.id.lineChart);
List<Entry> entries = new ArrayList<Entry>();
// 循环你的数据,向图表中添加点
for (int i = 0; i < 13; i++) {
entries.add(new Entry(i,i * 1000));
}
// 图表绑定数据,设置图表折现备注
LineDataSet dataSet = new LineDataSet(entries, "Label");
LineData lineData = new LineData(dataSet);
//图表标题
Description description = mLineChart.getDescription();
description.setText("历史数据折线图");
// 图表绑定数据值
mLineChart.setData(lineData);
//显示范围
mLineChart.setVisibleXRangeMaximum(4f);
XAxis xAxis = mLineChart.getXAxis();
// 设置X轴坐标之间的最小间隔
xAxis.setGranularity(1);
// 设置X轴坐标最小值
xAxis.setAxisMinimum(0f);
// 设置X轴坐标最大值
xAxis.setAxisMaximum(12.1f);
//关闭右侧y轴
mLineChart.getAxisRight().setEnabled(false);
//设置左侧y轴最大值
mLineChart.getAxisLeft().setAxisMaximum(15000);
// 刷新图表
mLineChart.invalidate();