Updated Answer (MPAndroidChart v3.0.1)
Being such a commonly used feature, v3.0.1 of the library added the IndexAxisValueFormatter
class exactly for this purpose, so it's just one line of code now:
mBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
The ProTip from the original answer below still applies.
Original Answer (MPAndroidChart v3.0.0)
With v3.0.0 of the library there is no direct way of setting labels for the bars, but there's a rather decent workaround that uses the ValueFormatter
interface.
Create a new formatter like this:
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];
}
}
Then set this formatter to your x-axis (assuming you've already created a String[]
containing the labels):
mBarChart.getXAxis().setValueFormatter(new LabelFormatter(labels));
ProTip: if you want to remove the extra labels appearing when zooming into the bar chart, you can use the granularity feature:
XAxis xAxis = mBarChart.getXAxis();
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…