我正在使用MPAndroid库。 实现'com.github.PhilJay:MPAndroidChart:v3.0.3' 我需要用标签创建BarChart。 我的代码如下,但它不起作用: 这是要显示的数组。
public ArrayList<BarEntry> getBarEntryArrayList() {
ArrayList<BarEntry> barEntries = new ArrayList<BarEntry>();
barEntries.add(new BarEntry(2f, 0));
barEntries.add(new BarEntry(4f, 1));
barEntries.add(new BarEntry(6f, 2));
barEntries.add(new BarEntry(8f, 3));
barEntries.add(new BarEntry(7f, 4));
barEntries.add(new BarEntry(3f, 5));
return barEntries;
}
这是在底部显示的标签数组。
public ArrayList<String> getBarEntryLabels() {
ArrayList<String> BarEntryLabels = new ArrayList<String>();
BarEntryLabels.add("J");
BarEntryLabels.add("F");
BarEntryLabels.add("M");
BarEntryLabels.add("A");
BarEntryLabels.add("M");
BarEntryLabels.add("J");
BarEntryLabels.add("J");
BarEntryLabels.add("A");
BarEntryLabels.add("S");
BarEntryLabels.add("O");
BarEntryLabels.add("N");
BarEntryLabels.add("D");
return BarEntryLabels;
}
设置标签数组和条目数组的问题
private void setBarChartData() {
BarDataSet barDataSet = new BarDataSet(getBarEntryArrayList(), getBarEntryLabels() );
barDataSet.setColors(ColorTemplate.COLORFUL_COLORS);
BarData barData = new BarData(barDataSet);
barChart.setData(barData);
barChart.animateY(3000);
}
此行无效。
BarDataSet barDataSet = new BarDataSet(getBarEntryArrayList(), getBarEntryLabels() );
如果没有标签的make代码正在运行。
BarDataSet barDataSet = new BarDataSet(getBarEntryArrayList(), "Dummy text" );
我必须使用标签数组。 提前谢谢。
我需要像这样创建图形。 请帮帮我。
答案 0 :(得分:3)
创建条形条目时,将标签添加为第三个参数:
barEntries.add(new BarEntry(2f, 0, "J"));
barEntries.add(new BarEntry(4f, 1, "F"));
barEntries.add(new BarEntry(6f, 2, "M"));
barEntries.add(new BarEntry(8f, 3, "A"));
barEntries.add(new BarEntry(7f, 4, "M"));
barEntries.add(new BarEntry(3f, 5, "P"));
在barChart.setData(barData);
之后,您可以使用setValueFormatter
barChart.getBarData().setValueFormatter(new IValueFormatter() {
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
return entry.getData().toString();
}
});
同时增加字体大小:
barChart.getData().setValueTextSize(15);
P.S。你不需要getBarEntryLabels
方法。
结果如下:
答案 1 :(得分:1)
您需要执行以下操作:
barChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(BarEntryLabels));
快乐编码:)
答案 2 :(得分:0)
您可以按照以下方式进行设置,
在科特林,
val xAxis = chart.xAxis
xAxis.valueFormatter = IndexAxisValueFormatter(labels)
如果仍然遇到问题,请确保您尚未隐藏x轴。如果要隐藏x轴,将不会显示标签。如果要隐藏x轴,则必须使x轴可见并为其提供透明颜色。