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

MPAndroidChart - X-axis draw labels only on top

我只想在图表顶部显示 X 轴标签。我该怎么做?

我正在使用此代码:

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

这是结果:

或者如果我这样做

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

然后我只在顶部有标签,但底线不见了。

您想显示位置 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);
        }
    });

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