How to format values inside MPAndroidChart?
If all you want is to change the number of decimal places on the values, the
DefaultValueFormatter
will suffice.
pieDataSet.setDefaultValueFormatter(new DefaultValueFormatter(digits = 1))
//where digits is the number of decimal places
The example above will format 88.65 as 88.7
Have a look at the IValueFormatter
interface provided by the library. With that interface, you can completely customize what gets displayed on the chart based on your own logic.
Usage:
chart.setValueFormatter(new YourValueFormatter());
YLabels yl = chart.getYLabels();
yl.setFormatter(new YourValueFormatter());
UPDATE (for versions 2.0.0+ of this [library][2]):
Now, a ValueFormatter
can be set for each DataSet
separately, or the same ValueFormatter
can be set for the whole data object containig all DataSets
. Furthermore, the YLabels
class is now called YAxis
.
Example:
// set for whole data object (individual DataSets also possible)
LineData data = new LineData(...);
data.setValueFormatter(new YourValueFormatter());
// YLabels are now called YAxis
YAxis yAxis = mChart.getAxisLeft(); // get the left or right axis
yAxis.setValueFormatter(new YourAxisValueFormatter());
UPDATE (for versions 3.0.0+ of this [library][2]):
The interfaces for formatting have been renamed and extended in their functionality. Now, the IAxisValueFormatter
can be used to format values of both XAxis
and YAxis
. The IValueFormatter
interface is used to customize chart values.
Link to the ValueFormatter documentation.