Я реализовал BarChart библиотеки MPChart.
Когда число баров в гистограмме меньше 9, метки выравниваются по столбцам, но как только количество увеличивается выше 9, метки пропускаются и вместо этогоиз 9 меток на оси х он показывает только 4-5.Усечение размера строки метки не помогает.
Скриншоты:
Мой код:
float index = 0;
ArrayList<String> xAxisLabel = new ArrayList<>();
for (Map.Entry<String, Integer> callMapVal : callMap.entrySet()) {
if (index < 8) {
barChartEntries.add(new BarEntry(index, callMapVal.getValue()));
if (callMapVal.getKey().length() > 10) {
xAxisLabel.add(getTruncated(callMapVal.getKey(), 9));
} else {
xAxisLabel.add(callMapVal.getKey());
}
}
index++;
}
BarDataSet dataSet = new BarDataSet(barChartEntries, selectedCallType.toString() + " CALLS");
dataSet.setValueTextSize(8f);
BarData chartData = new BarData(dataSet);
dataSet.setColors(ColorTemplate.COLORFUL_COLORS);
barChart.setData(chartData);
barChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(xAxisLabel));
//barChart.getXAxis().setLabelRotationAngle(20f);
barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
barChart.getXAxis().setTextSize(8f);
//barChart.getXAxis().setAvoidFirstLastClipping(true);
barChart.getXAxis().setGranularityEnabled(true);
barChart.getXAxis().setCenterAxisLabels(false);
barChart.getDescription().setEnabled(false);
barChart.setFitBars(true); // make the x-axis fit exactly all bars
barChart.invalidate(); // refresh
barChart.setScaleEnabled(false);
barChart.setDoubleTapToZoomEnabled(false);
barChart.setBackgroundColor(Color.rgb(255, 255, 255));
barChart.setDrawBorders(false);
barChart.setDrawValueAboveBar(true);