我已经实现了MPChart库的BarChart。
当条形图中的条形数量低于9时,标签会与条形对齐,但是一旦计数增加到9以上,标签就会被跳过,而在x轴上的9个标签而不是9个标签会显示出来, 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);
答案 0 :(得分:0)
您可以将标签数量设置为图表中的条形数量:
barChart.getXAxis().setLabelCount(9, true);