2016-12-27 2 views
0

Ich versuche, ein gruppiertes Balkendiagramm mit MPAndroidChart zu haben. Der letzte Balken bei 5 im Screenshot wird abgeschnitten.MPAndroidChart gruppiert BarChart abgeschnitten auf Xaxis

Was hätte ich falsch machen können?

Ich verwende v3.0.1. Ich habe dieses offizielle Dokument unter https://github.com/PhilJay/MPAndroidChart/wiki/Setting-Data#grouped-barchart gelesen.

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

Antwort

1

Ich konnte es erreichen, indem xAxis.setAxisMaximum(6F);

Aufruf
Verwandte Themen