最近在某个项目中用到了折线图,所以就选择用MPAndroidChart这个比较强大的图表库
要用这个库,先要添加以下依赖
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'
优化X轴显示密集重复我采用以下方案
- 设置X轴可以缩放,Y轴禁止缩放
mLineChart.setScaleXEnabled(true);
mLineChart.setScaleYEnabled(false);
- 根据数据比例设置X轴初始比例
if (mData.size()>X轴最多能显示的数据){
//倍率可以根据实际情况而定
mLineChart.setScaleMinima(2.0f,1.0f);
}else {
mLineChart.setScaleMinima(1.5f,1.0f);
}
- 对X轴进行一定角度的旋转,看着有立体效果,还能减小字体重叠
xAxis.setLabelRotationAngle(-30);
有个注意点
//设置最小间隔,防止当放大时出现重复标签
xAxis.setGranularity(1f);
xAxis.setLabelCount(dataX.size(), false);
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
//这里设值x轴文字的显示格式,value <= dataX.size() 这里的等号一定得取,不然最后一个数据绘制不上
if (value <= dataX.size() && value >= 0) {
//具体格式根据自己得业务设置
return dataX.get((int) (value + 0.5)) + "";
} else {
return "";
}
}
});