我正在使用MPAndroidChart(https://github.com/PhilJay/MPAndroidChart)技术制作柱状图,但是x轴的第二个值没有显示出来。我的输入值是:
x,y : 1周,3次
x,y : 2周,0次
x,y : 3周,0次
x,y : 4周,0次
x,y : 5周,0次
但是在我的手机上,第二个标签没有显示。我附上了源代码和结果截图。
x,y : 1周,3次
x,y : 2周,0次
x,y : 3周,0次
x,y : 4周,0次
x,y : 5周,0次
但是在我的手机上,第二个标签没有显示。我附上了源代码和结果截图。
ArrayList<BarEntry> entries = new ArrayList<>();
ArrayList<String> labels = new ArrayList<String>();
String[] labels2 = new String[ExRegList.length()];
try {
exerciseWholeCnt = ExRegList.length();
for (int i = 0; i < ExRegList.length(); i++) {
JSONObject obj = ExRegList.getJSONObject(i);
String week = obj.getString("WEEK");
int exCnt = obj.getInt("RESULT_COUNT");
labels.add(week + "주");
labels2[i] = week+"주";
entries.add(new BarEntry(i,exCnt));
}
} catch (Exception e) {
e.printStackTrace();
}
XAxis xAxis = barChart.getXAxis();
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels2));
XAxis bottomAxis = barChart.getXAxis();
bottomAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
bottomAxis.setDrawLabels(true);
bottomAxis.setDrawGridLines(false);
bottomAxis.setDrawAxisLine(true);
YAxis left = barChart.getAxisLeft();
left.setAxisMinimum(0);
left.setAxisMaximum(7);
BarDataSet barDataSet = new BarDataSet(entries, "01");
BarData barData = new BarData(barDataSet);
YAxis rightYAxis = barChart.getAxisRight();
rightYAxis.setEnabled(false);
barChart.setData(barData);
barChart.setDescription(null);
barChart.setPinchZoom(false);
barChart.setScaleEnabled(false);
barChart.setDrawBarShadow(false);
barChart.setDrawGridBackground(false);
barChart.animateY(2000);
barChart.getLegend().setEnabled(false);
barChart.getData().setValueTextSize(10);
barChart.getBarData().setValueFormatter(new IValueFormatter() {
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
if (value != 0) {
DecimalFormat format = new DecimalFormat("#");
return format.format(value) + "회";
}
return "";
}
});
// barChart.getXAxis().setValueFormatter(new MyValueFormatter());
barChart.invalidate();
}
结果如下。