MPAndroidChart将BarChart分为Xaxis

时间:2016-12-27 02:59:38

标签: android mpandroidchart

我正在尝试使用MPAndroidChart创建分组条形图。下面屏幕截图中5的最后一个栏被切断了。

我做错了什么?

我正在使用v3.0.1。我在https://github.com/PhilJay/MPAndroidChart/wiki/Setting-Data#grouped-barchart阅读了这份官方文件。

private void createBarChart(BarChart barChart) {
    barChart.getDescription().setEnabled(false);

    barChart.getAxisRight().setEnabled(false);
    barChart.getAxisLeft().setEnabled(true);
    barChart.setDrawGridBackground(true);
    barChart.setDrawValueAboveBar(false);
    barChart.setDrawBarShadow(false);
    barChart.setEnabled(true);

    barChart.setTouchEnabled(false);
    barChart.setPinchZoom(false);
    barChart.setDoubleTapToZoomEnabled(false);

    barChart.getLegend().setEnabled(false);

    XAxis xAxis = barChart.getXAxis();
    xAxis.setDrawLabels(true);
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
    xAxis.setDrawGridLines(true);
    xAxis.setCenterAxisLabels(true);
    xAxis.setAxisMinimum(0F);
    xAxis.setGranularity(1F);

    YAxis leftAxis = barChart.getAxisLeft();
    leftAxis.setAxisMinimum(0F);
    leftAxis.setAxisMaximum(50F); // 100F(100%) max

    barChart.setData(createBarChartData());
    barChart.groupBars(0F, 0.06F, 0.02F);

    barChart.invalidate();
}

private BarData createBarChartData() {
    ArrayList<BarEntry> valuesA = new ArrayList<>();
    valuesA.add(new BarEntry(0, 20));
    valuesA.add(new BarEntry(1, 40));
    valuesA.add(new BarEntry(2, 20));
    valuesA.add(new BarEntry(3, 10));
    valuesA.add(new BarEntry(4, 5));
    valuesA.add(new BarEntry(5, 5));

    BarDataSet valuesADataSet = new BarDataSet(valuesA, "A");
    valuesADataSet.setColor(ColorTemplate.COLORFUL_COLORS[3]);

    ArrayList<BarEntry> valuesB = new ArrayList<>();
    valuesB.add(new BarEntry(0, 35));
    valuesB.add(new BarEntry(1, 20));
    valuesB.add(new BarEntry(2, 15));
    valuesB.add(new BarEntry(3, 10));
    valuesB.add(new BarEntry(4, 10));
    valuesB.add(new BarEntry(5, 10));

    BarDataSet valuesBDataSet = new BarDataSet(valuesB, "B");
    valuesBDataSet.setColor(ColorTemplate.COLORFUL_COLORS[4]);

    BarData barData = new BarData(valuesADataSet, valuesBDataSet);
    barData.setDrawValues(false);
    barData.setBarWidth(0.45F);
    return barData;
}

enter image description here

1 个答案:

答案 0 :(得分:1)

我可以通过调用xAxis.setAxisMaximum(6F);

来完成它