У меня есть следующий код, где я создаю гистограмму. Он работает нормально, единственная проблема в том, что мои метки оси X не центрированы. Они выровнены по левому краю каждого бара. Может кто-нибудь помочь с некоторыми корректировками кода для решения этой проблемы? Я нашел несколько похожих вопросов, но все они относятся к групповым гистограммам с несколькими сериями.
ArrayList barEntries = clsGraphs.barEntries(myCursor, intBars);
final ArrayList barLabels = clsGraphs.getMonthsLabels();
barDataSet = new BarDataSet(barEntries, "Count by Month");
barDataSet.setColors(Color.BLUE);
barDataSet.setValueTextColor(Color.BLACK);
barDataSet.setValueTextSize(0f);
barData = new BarData(barDataSet);
barData.setBarWidth(1f);
barChartMth.setData(barData);
barChartMth.setDescription(null);
barChartMth.getLegend().setEnabled(false);
YAxis rightYAxis = barChartMth.getAxisRight();
rightYAxis.setEnabled(false);
XAxis xAxis = barChart.getXAxis();
xAxis.setLabelCount(barLabels.size());
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
xAxis.setCenterAxisLabels(true);
xAxis.setLabelRotationAngle(0);
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
if(value >= 0) {
if(value <= barLabels.size() - 1) {
int intVal = (int) value;
return String.valueOf(barLabels.get(intVal));
}
return "";
}
return "";
}
});