在MPAndroidChart中仅显示一些值

时间:2018-04-04 06:11:56

标签: java android graph bar-chart mpandroidchart

我有一个y值的数组,我在一个月的日期显示。为简化起见,对于4月的第一周,我的值为{0,200,0,0,500,0,100},超过x值{1,2,3,4,5,6,7}。我可以使用MPAndroidChart将它们显示为条形图。我也可以使用

隐藏和显示每个栏上的值
barChart.getData().setDrawValues(true); //or false when I want to hide 

但是,我想只显示非零的数字,我怎么能这样做?任何指针都将不胜感激!

我尝试按以下方式创建格式化程序:

public class MyYAxisValueFormatter implements IAxisValueFormatter {

        private DecimalFormat mFormat;

        public MyYAxisValueFormatter() {
        // format values to 1 decimal digit
            mFormat = new DecimalFormat("###,###,##0.0");
        }

        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            String val = "";

            if(value != 0)
                val = String.valueOf(value);

            return mFormat.format(value) + " $";
        }
    }

并在我的主要功能中使用它来调用它:

YAxis yAxis = barChart.getAxisLeft();
yAxis.setValueFormatter(new MyYAxisValueFormatter());

但仍会显示零值。

2 个答案:

答案 0 :(得分:1)

尝试制作自己的IValueFormatter界面

public class MyYAxisValueFormatter implements IValueFormatter {

        private DecimalFormat mFormat;

        public MyYAxisValueFormatter() {
        // format values to 1 decimal digit
            mFormat = new DecimalFormat("###,###,##0.0");
        }

        @Override
        public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
            // "value" represents the position of the label on the axis (x or y)
             if(value > 0) {
               return mFormat.format(value);
             } else {
               return "";
             }
        }
    }

尝试将值格式化程序设置为条形图。

bar.setValueFormatter(new MyYAxisValueFormatter ());

答案 1 :(得分:0)

试试这个:

private class MyValueFormatter implements ValueFormatter {

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        // write your logic here
        if(value > 0)
            return value+"";
        else
            return "";
    }
}

尝试这个likn它可以帮助你

https://github.com/PhilJay/MPAndroidChart/issues/2402