Только что начал использовать версию MPAndroidChart версии 3.0.0, и я создал проект, который может показывать мои значения в гистограмме. Мой вопрос в том, где я могу добавить и отобразить метки. Каждый бар должен иметь свою собственную метку, например. «Дым», «Сыр» и т. Д. Внизу. Не уверен, какая функция делает это, я активно ищу и читаю Docs/Wiki, но в настоящий момент нет радости.MPAndroidChart добавление и отображение метки гистограммы
3
A
ответ
4
В зависимости от ваших предпочтений, вы можете использовать data
свойство в Entry
хранить метку, а затем вернуть его в IAxisValueFormatter
реализации:
public class LabelValueFormatter implements IAxisValueFormatter {
private final DataSet mData;
public LabelValueFormatter(DataSet data) {
mData = data;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
// return the entry's data which represents the label
return (String) mData.getEntryForXPos(value, DataSet.Rounding.CLOSEST).getData();
}
}
Такой подход позволяет использовать Entry
конструктор (или BarEntry
в данном случае), чтобы добавить метки, которые могут улучшить читаемость кода:
ArrayList<BarEntry> entries = new ArrayList<>();
for (int i = 0; i < length; i++) {
// retrieve x-value, y-value and label
entries.add(new BarEntry(x, y, label));
}
BarDataSet dataSet = new BarDataSet(entries, "description");
BarData data = new BarData(dataSet);
mBarChart.setData(data);
mBarChart.getXAxis().setValueFormatter(new LabelValueFormatter(data));
Также проверьте this answer больше информацию и альтернативный подход к использованию меток с BarChart
и новой версией библиотеки 3.0.0
.
Я не могу получить IAxisVlueFormatter, это в версии 3 lib ?. У меня есть v3 beta, указанная в gradle. Обнаружен только AxisValueFormatter. – brucen
Да, это правильный класс. Со следующей версией библиотеки она будет переименована. – TR4Android
Спасибо, теперь он отлично работает. просто пришлось отбрасывать данные (BarData), потому что у меня была BarData как моя переменная для адаптера Bar Chart и использована getDataSetByIndex (позиция). – brucen