MPAndroidChart:XAxis 值与数据值不对应

smu*_*uka 4 android mpandroidchart

我在使用 MPAndroidChart 时遇到问题:我有一些条目数据要显示在条形图中,但 xaxis 标签没有显示在我想要的位置:我想立即在“条形图”下为每个图表值显示一个.

这就是现在正在发生的事情:

在此处输入图片说明

这是我的代码:

    ArrayList<BarEntry> entries1 = my entries...;
    final ArrayList<String> stringList1 = my strings...;

    XAxis xAxis1 = chartCost.getXAxis();
    xAxis1.setPosition(XAxis.XAxisPosition.BOTTOM);
    xAxis1.setDrawGridLines(false);
    xAxis1.setCenterAxisLabels(true);
    /*
    xAxis1.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return stringList1.get((int)value);
        }
    });
    */

    BarDataSet set = new BarDataSet(entries1, "myData");
    BarData data = new BarData(set);
    chartCost.setData(data);
    chartCost.setFitBars(true);
    chartCost.invalidate();
Run Code Online (Sandbox Code Playgroud)

entry1 和 stringList1 被正确填充。下面是一个例子:

- x: 0, y: 22,90
- x: 1, y: 21,53
- x: 2, y: 18,49
Run Code Online (Sandbox Code Playgroud)

如果我对 IAxisValueFormatter 进行注释,则浮点值与我的条目的 x 值不对应,但是,如您所见,都是十进制值!

我想获得这个(在条形下放置标签): 在此处输入图片说明

但是我该怎么做呢?谢谢!

rem*_*til 5

在您的代码中包含以下几行

xAxis1.setCenterAxisLabels(false);
xAxis1.setGranularity(1f);
Run Code Online (Sandbox Code Playgroud)

setCenterAxisLabels,默认值为false。所以它不是强制性的。如果您已将其设置为 true,请将其设为 false。否则您的条形将位于连续的 x 值之间