首页 > 解决方案 > mpAndroidChart:Xaxis.setPosition 到 Bottom_Inside 在 Horizo​​ntalBarChart 上不起作用

问题描述

我有一个带 mpAndroidChart 的 Horizo​​ntalBarChart,但在左侧显示标签时遇到问题,但在图表内。它看起来像这样:

在此处输入图像描述

标签在左侧被切掉。这是通过线路完成的

testchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM_INSIDE)

在右侧,它运行顺利:

在此处输入图像描述

标签位于图表内部并完全显示。这是通过以下行完成的:

testchart.getXAxis().setPosition(XAxis.XAxisPosition.TOP_INSIDE)

知道我做错了什么吗?

我的图表代码是:

BarData data = new BarData(new BarDataSet(entries, "Labeltest"));

        data.setBarWidth(1); // set custom bar width
        data.setDrawValues(false);
        oBinding.testchart.setData(data);
        oBinding.testchart.getXAxis().setLabelCount(labels.size());

        oBinding.testchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM_INSIDE);
        oBinding.testchart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));

        // Hide grid lines
        oBinding.testchart.getAxisLeft().setEnabled(false);
        oBinding.testchart.getAxisRight().setEnabled(false);
        // Hide graph description
        oBinding.testchart.getDescription().setEnabled(false);
        // Hide graph legend
        oBinding.testchart.getLegend().setEnabled(false);


        oBinding.testchart.invalidate(); // refresh

在 XML 中:

<com.github.mikephil.charting.charts.HorizontalBarChart
            android:id="@+id/testchart"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

标签: mpandroidchart

解决方案


我也遇到了同样的问题,我是这样解决的。

chart.getXAxis().setPosition(XAxisPosition.BOTTOM_INSIDE)

这样,标签应该被绘制在条上。setXOffset(...)您可以使用类的和setYOffset(...)方法进一步重新定位标签XAxis

如果你有更好的方法,请告诉我,谢谢


推荐阅读