James Cameron
James Cameron

Reputation: 1761

MPAndroidChart - Remove top border / axis since v2

I upgraded MPAndroidChart from v1.7 to v2 and had to change a couple things. One of the new things is that i now appear to have a top border for the maximum value.

The top border is what i want to remove

My code trying to hide all borders is like this:

    LineChart graph = (LineChart) connectionView.findViewById(R.id.graph);
    graph.setDrawGridBackground(false);
    graph.setDrawBorders(false);
    graph.setDescription("");

    YAxis yr = graph.getAxisRight();
    yr.setEnabled(false);
    yr.setDrawAxisLine(false);

    YAxis yl = graph.getAxisLeft();
    yl.setValueFormatter(formatierer);
    yl.setShowOnlyMinMax(true);
    yl.setDrawAxisLine(false);

    XAxis xl = graph.getXAxis();
    xl.setPosition(XAxis.XAxisPosition.BOTTOM);
    xl.setDrawGridLines(false);
    xl.setDrawAxisLine(false);

    yl.setAxisMaxValue((float) graphpoint_max);

Still - i have a line showing the maximum value. I want to have the values on the YAxis but have no horizontal axis lines / borders. I wasn't able to find any command to hide it.

Upvotes: 8

Views: 7651

Answers (3)

Energy
Energy

Reputation: 958

remove whatever lines you want :)

...       
        //remove top border
        chart.getXAxis().setDrawAxisLine(false);
        
        //remove left border
        chart.getAxisLeft().setDrawAxisLine(false);
        
        //remove right border
        chart.getAxisRight().setDrawAxisLine(false);

     

in case you want to remove all the grids, lines and labels

chart.getDescription().setEnabled(false);
chart.setDrawGridBackground(false);

chart.setHighlightFullBarEnabled(false);

chart.getXAxis().setDrawGridLines(false);
chart.getAxisLeft().setDrawGridLines(false);
chart.getAxisRight().setDrawGridLines(false);
chart.getAxisRight().setDrawLimitLinesBehindData(false);
chart.getAxisLeft().setDrawLabels(false);
chart.getAxisRight().setDrawLabels(false);
chart.getXAxis().setDrawLabels(false);
chart.getXAxis().setDrawLimitLinesBehindData(false);
chart.getLegend().setEnabled(false);

Upvotes: 8

Jarett Millard
Jarett Millard

Reputation: 5948

The top line is drawn as part of the X axis. You need to call this to get rid of it: chart.getXAxis().setDrawAxisLine(false);.

Upvotes: 2

Philipp Jahoda
Philipp Jahoda

Reputation: 51411

Have you tried calling setDrawAxisLine(...) or setDrawGridLines(...) on the YAxis?

Here is the full axis documentation.

And here is the documentation for YAxis only.

Upvotes: 11

Related Questions