MPAndroidChart - рисовать надписи по оси X только сверху - PullRequest
0 голосов
/ 17 октября 2018

Я хочу отображать метки оси X только в верхней части моего графика.Как я могу это сделать?

Я использую этот код:

    XAxis xAxis = chart.getXAxis();
    xAxis.setPosition(XAxis.XAxisPosition.BOTH_SIDED);
    xAxis.setDrawLabels(false);

И это результат: enter image description here

Или еслиЯ делаю это

    XAxis xAxis = chart.getXAxis();
    xAxis.setPosition(XAxis.XAxisPosition.TOP);
    xAxis.setDrawAxisLine(true);

Тогда у меня есть надписи только сверху, НО нижняя строка отсутствует.

enter image description here

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Это не поможет оригинальному автору, но у меня была та же проблема, и я исправил ее с помощью chart.setExtraBottomOffset (-40f);Красиво, просто, стоит попробовать.Возможно, вам придется настроить значение в соответствии с вашей эстетикой.

0 голосов
/ 17 октября 2018

Вы хотите отобразить строки xAxis для позиции BOTH_SIDED, но без меток внизу, поэтому вам необходимо переопределить XAxisRenderer:

    chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTH_SIDED);
    chart.setXAxisRenderer(new XAxisRenderer(chart.getViewPortHandler(), chart.getXAxis(), chart.getTransformer(YAxis.AxisDependency.LEFT)) {
        @Override
        public void renderAxisLabels(Canvas canvas) {
            if (!mXAxis.isEnabled()|| !mXAxis.isDrawLabelsEnabled())
                return;
            MPPointF pointF = MPPointF.getInstance(0f, 0f);
            mAxisLabelPaint.setTypeface(mXAxis.getTypeface());
            mAxisLabelPaint.setTextSize(mXAxis.getTextSize());
            mAxisLabelPaint.setColor(mXAxis.getTextColor());
            pointF.x = 0.5f;
            pointF.y = 1.0f;
            drawLabels(canvas, mViewPortHandler.contentTop() - mXAxis.getYOffset(), pointF);
        }
    });
...