Here is the code i used for group bar_chart using MPAndroid library version 3. I've tried group bar chart in lower version and it works fine but the BarData constructor is changed in latest version. And this code doesn't works. There is no crashes and error logs, still graph is loading and no data shows in it. Help me to find ma flaws
List<BarEntry> entriesGroup1 = new ArrayList<>();
List<BarEntry> entriesGroup2 = new ArrayList<>();
List<BarEntry> entriesGroup3 = new ArrayList<>();
entriesGroup1.add(new BarEntry(0, 8f));
entriesGroup1.add(new BarEntry(1, 2f));
entriesGroup1.add(new BarEntry(2, 5f));
entriesGroup1.add(new BarEntry(3, 20f));
entriesGroup1.add(new BarEntry(4, 15f));
entriesGroup1.add(new BarEntry(5, 19f));
entriesGroup2.add(new BarEntry(0, 6f));
entriesGroup2.add(new BarEntry(1, 10f));
entriesGroup2.add(new BarEntry(2, 5f));
entriesGroup2.add(new BarEntry(3, 25f));
entriesGroup2.add(new BarEntry(4, 4f));
entriesGroup2.add(new BarEntry(5, 17f));
entriesGroup3.add(new BarEntry(0, 9f));
entriesGroup3.add(new BarEntry(1, 1f));
entriesGroup3.add(new BarEntry(2, 15f));
entriesGroup3.add(new BarEntry(3, 13f));
entriesGroup3.add(new BarEntry(4, 40f));
entriesGroup3.add(new BarEntry(5, 25f));
BarDataSet set1 = new BarDataSet(entriesGroup1, "Group 1");
BarDataSet set2 = new BarDataSet(entriesGroup2, "Group 2");
BarDataSet set3 = new BarDataSet(entriesGroup3, "Group 3");
final ArrayList<String> labels = new ArrayList<String>();
labels.add("2016");
labels.add("2015");
labels.add("2014");
labels.add("2013");
labels.add("2012");
labels.add("2011");
IAxisValueFormatter formatter = new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
if((int) value < 0 || (int) value >= labels.size()){
return "";
}else{
return labels.get((int) value);
}
}
// we don't draw numbers, so no decimal digits needed
@Override
public int getDecimalDigits() { return 0; }
};
set1.setColor(Color.parseColor("#cd5080"));
set2.setColor(Color.parseColor("#0d5080"));
set3.setColor(Color.parseColor("#fc5080"));;
float groupSpace = 0.06f;
float barSpace = 0.02f; // x2 dataset
float barWidth = 0.45f; // x2 dataset
// (0.02 + 0.45) * 2 + 0.06 = 1.00 -> interval per "group"
XAxis xAxis = barChart.getXAxis();
xAxis.setCenterAxisLabels(true);
xAxis.setGranularity(1f); // minimum axis-step (interval) is 1
xAxis.setValueFormatter(formatter);
BarData data = new BarData(set1, set2, set3);
data.setBarWidth(barWidth); // set the width of each bar
barChart.setData(data);
barChart.groupBars(2016, groupSpace, barSpace);
barChart.invalidate(); // refresh
barChart.animateY(5000);
Nb: I'm edited my current question since i'm banned to ask new questions. But its important for me. Thanks everyone.