优化MPAndroidChart绘制折线图数据过多,X轴显示密集的问题

最近在某个项目中用到了折线图,所以就选择用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 "";
                }
            }
        });

你可能感兴趣的:(android)