mpandroidchart x轴值重复

mpandroidchart xaxisvalues are repeating

[![在此处输入图片描述][1]][1]如果图表中的可用值较少,mpandroidchart 中的 x 轴值会重复

我试过这样做,但如果图表有一个值,它就会重复

lineChart.getAxisRight().setEnabled(false);
                    XAxis xAxis = lineChart.getXAxis();
                    xAxis.setGranularity(1f);
                    xAxis.setGranularityEnabled(true);

lineChart.getXAxis().setLabelCount(yvalues.size()-1,true);
                    System.out.println("xaxis"+yvalues.size());
                    xAxis.setValueFormatter(new ValueFormatter() {
                        @Override
                        public String getFormattedValue(float value) {
                            System.out.println("xaxis values"+value);
                            return yvalues.get(Math.min(Math.max((int) 
value, 0), yvalues.size()-1)).xAxisValue;
                        }
                    });
                    setData(yvalues);

Setdata 值函数从我设置我从服务器动态获取的所有条目的位置开始

private void setData(List<Data> dataList) {
    if(lineChart.getData() != null){
        System.out.println("linechart"+lineChart.getData());
        lineChart.clearValues();
    }
    lineChart.getDescription().setEnabled(false);
    ArrayList<Entry> values = new ArrayList<>();
    List<Integer> colors = new ArrayList<>();

    int green = Color.rgb(110, 190, 102);
    int red = Color.rgb(211, 74, 88);

    for (int i = 0; i < dataList.size(); i++) {

        Data d = dataList.get(i);
        Entry entry = new Entry(d.xValue, d.yValue);
        values.add(entry);

        // specific colors
        if (d.yValue >= 0)
            colors.add(red);
        else
            colors.add(green);
    }

    LineDataSet set;

    if (lineChart.getData() != null &&
            lineChart.getData().getDataSetCount() > 0) {
        set = (LineDataSet) lineChart.getData().getDataSetByIndex(0);
        set.setValues(values);
        lineChart.getData().notifyDataChanged();
        lineChart.notifyDataSetChanged();
    } else {
        set = new LineDataSet(values, "Values");
        set.setColors(colors);
        set.setValueTextColors(colors);
        lineChart.getLegend().setEnabled(false);
        LineData data = new LineData(set);
        data.setValueTextSize(13f);
        data.setValueTypeface(tfRegular);
        data.setValueFormatter(new Formatter());
        lineChart.setData(data);
        lineChart.notifyDataSetChanged();
        lineChart.invalidate();
    }
}

我的格式化程序 class 转换我的字符串值并在轴上显示它,因为我想显示日期

 private class Formatter extends ValueFormatter
{

    private final DecimalFormat mFormat;

    Formatter() {
        mFormat = new DecimalFormat("######.0");
    }

    @Override
    public String getFormattedValue(float value) {
        return mFormat.format(value);
    }
}

请使用

xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);

另请参阅此 link...

https://github.com/PhilJay/MPAndroidChart/wiki/The-Axis