MPAndroidChart – добавление меток на гистограмму
Для моего приложения необходимо иметь метку на каждом баре гистограммы. Есть ли способ сделать это с помощью MPAndroidChart? Я не мог найти способ сделать это в проекте wiki / javadocs.
Если нет способа сделать это, есть ли другое программное обеспечение, которое позволит мне?
- Wifi спит, даже с Lock
- поддержка FragmentPagerAdapter содержит ссылку на старые fragmentы
- Добавить тень в пользовательскую форму на Android
- Папка активов библиотеки Android не копируется
- Получение исключения отказа от разрешения
- Сделайте снимок экрана целиком
- После обновления до Google Play Services 9.0.0 приложение зависает в DynamiteModulesC
- Рисованное изображение на canvasе
- Значение тега ориентации EXIF всегда 0 для изображения, сделанного с помощью приложения для портретов с вертикальной камерой
- Невозможно создать и запустить проект тестирования андроида, созданный с помощью «ant create test-project», когда тестируемый проект имеет банки в каталоге libs
- Как объединить два APK в один, чтобы оба приложения могли быть установлены одновременно
- Как сохранить объект в базе данных sqlite?
- Создать новый проект на Android, Ошибка: Студия Неизвестный хост 'services.gradle.org'
Обновленный ответ (MPAndroidChart v3.0.1)
Являясь такой часто используемой функцией, v3.0.1 библиотеки добавила class IndexAxisValueFormatter
именно для этой цели, так что теперь это всего лишь одна строка кода:
mBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
ProTip из исходного ответа ниже по-прежнему применяется.
Оригинальный ответ (MPAndroidChart v3.0.0)
С v3.0.0 библиотеки нет прямого способа установки меток для ValueFormatter
, но есть довольно приличное обходное решение, использующее интерфейс ValueFormatter
.
Создайте новый форматтер следующим образом:
public class LabelFormatter implements IAxisValueFormatter { private final String[] mLabels; public LabelFormatter(String[] labels) { mLabels = labels; } @Override public String getFormattedValue(float value, AxisBase axis) { return mLabels[(int) value]; } }
Затем установите этот форматтер на ось x (если вы уже создали String[]
содержащую метки):
mBarChart.getXAxis().setValueFormatter(new LabelFormatter(labels));
ProTip: если вы хотите удалить дополнительные ярлыки, появляющиеся при масштабировании на гистограмме, вы можете использовать функцию детализации:
XAxis xAxis = mBarChart.getXAxis(); xAxis.setGranularity(1f); xAxis.setGranularityEnabled(true);
вы можете установить метку столбца выше, добавив эту строку go code
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);