MPAndroidChart xAxis的对齐方式

时间:2018-02-03 20:23:27

标签: android mpandroidchart

任何人都可以帮助我解决为什么我的对齐关闭xAxis。我希望这些点与每个相应的文本标签(一周中的几天)对齐

以下是图表的图片:GRAPH PICTURE

以及产生它的代码

private void setupChart() {
    final ArrayList<Entry> points = new ArrayList<>();
    //Add the values into the graph
    points.add(new Entry(1,  17));
    points.add(new Entry(2,  14));
    points.add(new Entry(3,  10));
    points.add(new Entry(4,  2));
    points.add(new Entry(5,  20));
    //Format the dataset to look nice
    LineDataSet lineDataSet = new LineDataSet(points, "Experiments");
    lineDataSet.setColor(Color.MAGENTA);
    lineDataSet.setCircleColor(Color.GREEN);
    lineDataSet.setCircleRadius(5);
    lineDataSet.setValueTextSize(10);
    lineDataSet.setLineWidth(3);

    //Add the LineDataSet to the DataSets
    final ArrayList<ILineDataSet> dataSets = new ArrayList<>();
    dataSets.add(lineDataSet);

    final LineData lineData = new LineData(dataSets);
    chart.setData(lineData);
    //Format the chart nicely
    chart.setDrawGridBackground(false);
    chart.setDrawBorders(false);
    chart.getAxisRight().setEnabled(false);
    chart.getLegend().setEnabled(false);
    chart.getDescription().setEnabled(false);
    chart.setExtraBottomOffset(10);
    chart.setPinchZoom(false);

    //Get the XAxis of the grid
    XAxis xaxis = chart.getXAxis();
    //Format the xAxis
    final String[] dateStrings = new String[]{"Mon", "Tue", "Wed", "THU", "Fri"};
    xaxis.setPosition(XAxis.XAxisPosition.BOTTOM);
    xaxis.setLabelCount(5);

    xaxis.setLabelRotationAngle(-8);
    xaxis.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return dateStrings[(int) value];
        }
    });
}

我在我的依赖项中使用com.github.PhilJay:MPAndroidChart:v3.0.2

2 个答案:

答案 0 :(得分:0)

删除此行:

xaxis.setLabelCount(5);

添加以下行:

XAxis xAxis = chart.getXAxis();
xAxis.setCenterAxisLabels(true);

答案 1 :(得分:0)

使用下面的代码。

xAxis.setLabelCount(5, true);

而且,您可以在库文件中找到实现代码。

public void setLabelCount(int count, boolean force) {
    setLabelCount(count);
    mForceLabels = force;
}

“force”参数决定是否重新计算标签位置。