MPAndroidChart-X轴仅在顶部绘制标签

时间:2018-10-17 08:58:53

标签: android charts mpandroidchart linechart

我只想在图表的顶部显示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 :(得分:1)

您要显示位置BOTH_SIDED的xAxis行,但在底部没有标签,因此您需要覆盖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);
        }
    });

答案 1 :(得分:0)

这对原始作者没有帮助,但是我遇到了同样的问题,并使用   chart.setExtraBottomOffset(-40f); 不错,简单,值得一试。您可能需要调整值以适合您的审美观。