2016-12-27 99 views
0

我想要使用MPAndroidChart的分組條形圖。下面截圖中5的最後一個條被截斷。MPAndroidChart分組BarChart在Xaxis上被切斷

我該做什麼錯了?

我正在使用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

我能夠通過調用xAxis.setAxisMaximum(6F);

完成它