2 Вопросы о библиотеке MPAndroidChart. Все мои значения являются целыми числами, но отображаются как Decimals. Как я могу получить их в виде целых чисел (без цифр)? Как я могу предотвратить, что иглавы также отображаются как десятичные числа? Я знаю, что для yvalues есть setFormatter, просто не понимаю, как использовать...
Как форматировать значения внутри MPAndroidChart?
Ответ 1
Посмотрите на интерфейс IValueFormatter
предоставляемый библиотекой. С этим интерфейсом вы можете полностью настроить то, что отображается на графике, основываясь на вашей собственной логике.
Использование:
chart.setValueFormatter(new YourValueFormatter());
YLabels yl = chart.getYLabels();
yl.setFormatter(new YourValueFormatter());
ОБНОВЛЕНИЕ (для версий 2.0. 0+ этой [библиотеки] [2]):
Теперь ValueFormatter
может быть установлен для каждого DataSet
отдельно, или же ValueFormatter
может быть установлен для всего объекта данных, содержащего все DataSets
. Кроме того, класс YLabels
теперь называется YAxis
.
Пример:
// 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());
ОБНОВЛЕНИЕ (для версий 3.0. 0+ этой [библиотеки] [2]):
Интерфейсы для форматирования были переименованы и расширены в их функциональности. Теперь IAxisValueFormatter
можно использовать для форматирования значений как XAxis
и YAxis
. Интерфейс IValueFormatter
используется для настройки значений диаграммы.
Ссылка на документацию ValueFormatter.
Ответ 2
Если все, что вам нужно, это изменить количество десятичных разрядов в значениях,
DefaultValueFormatter
будет достаточно.
pieDataSet.setDefaultValueFormatter(new DefaultValueFormatter(digits = 1))
//where digits is the number of decimal places
В приведенном выше примере формат 88,85 будет равен 88,7.