MPAndroidChart icon indicating copy to clipboard operation
MPAndroidChart copied to clipboard

Floating bars above x axis

Open srig844 opened this issue 3 years ago • 1 comments

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 Screenshot_20221109_140317 ce.

srig844 avatar Nov 09 '22 08:11 srig844

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();

}

srig844 avatar Nov 09 '22 08:11 srig844