Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MPAndroidChart: How to customise bar value labels

I am using MPAndroidChart in my Android app. I use a BarChart composed of BarEntry. I also enabled the y-values to be displayed on top of the bar.

My issue is that I want the values on top of the bars to be whole numbers like 5. But currently the values display as 5.00.

the top of a single bar from a bar chart with the value label above it displaying "5.00"

So how do I make 5.00 display as 5?

like image 797
Mandroid Avatar asked Aug 12 '16 15:08

Mandroid


1 Answers

Values are formatted using the IValueFormatter interface. Here's a simple formatter that converts all values to integers:

public class IntValueFormatter implements IValueFormatter {

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return String.valueOf((int) value);
    }
}

You can then use this formatter for both BarData and individual BarDataSet objects like this:

barData/barDataSet.setValueFormatter(new IntValueFormatter());

For more information on IValueFormatter, check the following links:

  • IValueFormatter Wiki on Github
  • IValueFormatter Documentation on JitPack (v3.0.0-beta1)
like image 87
TR4Android Avatar answered Oct 18 '22 22:10

TR4Android