MPAndroidChart
MPAndroidChart copied to clipboard
Floating bars above x axis
Hi I was using MPAndroidChart for a bar chart representation in android. I faced a bug where the bars are floating above the X- Axis.
Kindly provide the helping hand to figure it out.
Thanks in advan
ce.
Below is the code. Do refer and figure it out.
private void initBarChart() {
ArrayList billslist = new ArrayList();
ArrayList billslist2 = new ArrayList();
billslist.add(new BarEntry(1f, 4321f));
billslist.add(new BarEntry(2f, 4138));
billslist.add(new BarEntry(3f, 4117f));
billslist.add(new BarEntry(4f, 4200f));
billslist.add(new BarEntry(5f, 4465f));
billslist.add(new BarEntry(6f, 45f));
billslist.add(new BarEntry(7f, 4864f));
billslist.add(new BarEntry(8f, 4651f));
billslist.add(new BarEntry(9f, 4321f));
billslist.add(new BarEntry(10f, 4895));
billslist.add(new BarEntry(11f, 4321f));
billslist2.add(new BarEntry(12f, 4321f));
BarDataSet billsDataSet = new BarDataSet(billslist, "");
billsDataSet.setGradientColor(Color.parseColor("#4697E8"),Color.parseColor("#E5C1E5"));
billsDataSet.setDrawValues(false);
BarDataSet billsDataSet2 = new BarDataSet(billslist2, "");
billsDataSet2.setGradientColor(Color.parseColor("#4697E8"),Color.parseColor("#E5C1E5"));
billsDataSet2.setDrawValues(false);
BarData billsData = new BarData();
billsData.addDataSet(billsDataSet);
billsData.addDataSet(billsDataSet2);
billsData.setBarWidth(.5f);
CustomBarChartRender savingchartrender = new CustomBarChartRender(binding.barchartBillsAndGoals, binding.barchartBillsAndGoals.getAnimator(), binding.barchartBillsAndGoals.getViewPortHandler());
savingchartrender.setRadius(10);
binding.barchartBillsAndGoals.setRenderer(savingchartrender);
binding.barchartBillsAndGoals.getLegend().setEnabled(false);
binding.barchartBillsAndGoals.getDescription().setEnabled(false);
binding.barchartBillsAndGoals.getXAxis().setDrawGridLines(false);
binding.barchartBillsAndGoals.getXAxis().setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
switch((int)value){
case 1 : return "JAN";
case 2 : return "FEB";
case 3 : return "MAR";
case 4 : return "APR";
case 5 : return "MAY";
case 6 : return "JUN";
case 7 : return "JUL";
case 8 : return "AUG";
case 9 : return "SEP";
case 10 : return "OCT";
case 11 : return "NOV";
case 12 : return "DEC";
default: return "";
}
}
});
binding.barchartBillsAndGoals.getAxisLeft().setGridLineWidth(1f);
binding.barchartBillsAndGoals.getAxisLeft().setGridColor(Color.parseColor("#fafafa"));
binding.barchartBillsAndGoals.setDrawBorders(false);
binding.barchartBillsAndGoals.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
binding.barchartBillsAndGoals.getXAxis().setAxisLineWidth(2f);
binding.barchartBillsAndGoals.getXAxis().setSpaceMax(0.8f);
binding.barchartBillsAndGoals.getXAxis().setTextSize(10);
binding.barchartBillsAndGoals.getXAxis().setLabelCount(12);
binding.barchartBillsAndGoals.getAxisRight().setDrawAxisLine(false);
binding.barchartBillsAndGoals.getAxisRight().setLabelCount(4);
binding.barchartBillsAndGoals.getAxisLeft().setEnabled(false);
binding.barchartBillsAndGoals.setData(billsData);
binding.barchartBillsAndGoals.setPinchZoom(false);
binding.barchartBillsAndGoals.setDoubleTapToZoomEnabled(false);
binding.barchartBillsAndGoals.invalidate();
}