2 Вопросы о библиотеке MPAndroidChart. Все мои значения y являются целыми числами, но отображаются как десятичные числа. Как я могу отобразить их как целые числа (без цифр)? Как я могу предотвратить отображение ylabels в виде десятичных знаков? Я знаю, что для значений y есть setFormatter, просто не понимаю, как его использовать...
Как отформатировать значения внутри MPAndroidChart?
Ответы (2)
Взгляните на 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.
xAxis.setValueFormatter(new DayAxisValueFormatter(mChart));
, который устанавливает дату как 1 января, 2 января, а не даты, которые у меня есть
- person Prabs; 18.02.2017
xAxis.setLabelRotationAngle(-30f);
, который корректирует дату в зависимости от пробела и немного наклоняет ее, чтобы метки не перекрывались. Удивительная библиотека @PhilippJahoda
- person Prabs; 18.02.2017
pieData.setValueFormatter(new PercentFormatter());
не показывает значок процента, вы должны использовать второй конструктор следующим образом: pieData.setValueFormatter(new PercentFormatter(pieChart));
- person TeachMeJava; 26.12.2019
Если все, что вам нужно, это изменить количество знаков после запятой в значениях, DefaultValueFormatter
будет достаточно.
pieDataSet.setDefaultValueFormatter(new DefaultValueFormatter(digits = 1))
//where digits is the number of decimal places
В приведенном выше примере 88,65 будет отформатировано как 88,7.