2016-10-03 3 views
1

Ich verwende MPAndroidChart, um gruppierte Dataset zu erstellen, aber es zeigt einen Fehler BarData data = new BarData(labels,dataSets); an dieser Zeile, die Unable to resolve constructor,BarData(java.util.ArrayList)<java.lang.String>,java.util.ArrayList<com.github.mikephil.charting.data.BarDataSet;> ist Ich habe auch IBarDataSet gegossen, dann erhält die Anwendung Unfortunately Stopped. Ich habe die Abhängigkeit compile 'com.github.PhilJay:MPAndroidChart:v2.2.4' verwendet. Jemand bitte hilf mir !!MPAndroidChart: Wie gruppiere ich BarChart?

//create BarEntry for group 1 
      ArrayList<BarEntry> group1 = new ArrayList<>(); 
      group1.add(new BarEntry(4f, 0)); 
      group1.add(new BarEntry(8f, 1)); 
      group1.add(new BarEntry(6f, 2)); 
      group1.add(new BarEntry(12f, 3)); 
      group1.add(new BarEntry(18f, 4)); 
      group1.add(new BarEntry(9f, 5)); 

      // create BarEntry for group 2 
      ArrayList<BarEntry> group2 = new ArrayList<>(); 
      group2.add(new BarEntry(6f, 0)); 
      group2.add(new BarEntry(7f, 1)); 
      group2.add(new BarEntry(8f, 2)); 
      group2.add(new BarEntry(12f, 3)); 
      group2.add(new BarEntry(15f, 4)); 
      group2.add(new BarEntry(10f, 5)); 

      // creating dataset for group1 
      BarDataSet barDataSet1 = new BarDataSet(group1, "Brand 1"); 
      barDataSet1.setColors(ColorTemplate.COLORFUL_COLORS); 

      // creating dataset for group2 
      BarDataSet barDataSet2 = new BarDataSet(group2, "Brand 2"); 
      barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS); 

      // combined all dataset into an arraylist 
      ArrayList<BarDataSet> dataSets = new ArrayList<>(); 
      dataSets.add(barDataSet1); 
      dataSets.add(barDataSet2); 


      ArrayList<String> labels = new ArrayList<>(); 
      labels.add("JAN"); 
      labels.add("FEB"); 
      labels.add("MAR"); 
      labels.add("APR"); 
      labels.add("MAY"); 
      labels.add("JUN"); 
      BarData data = new BarData(labels,dataSets);// initialize the Bardata with argument labels and dataSet 
      barChartGroup.setData(data); 

Ich möchte den Datensatz wie das folgende Beispiel erhalten: -

Grouped DataSet

Dank !!

Antwort

2

Seit der Veröffentlichung v3.0.0 eine große Änderung im Zusammenhang mit der Zeichnung von gruppierten BarChart brachte, sollten Sie Ihre Abhängigkeit ändern, um die neueste Version zu erhalten.

Nachdem das gesagt wurde, wie definiert man die BarData für Ihre Datengruppen? Nach dem example for "Grouped BarChart" aus dem offiziellen Wiki, tun Sie es wie folgt aus:

BarData data = new BarData(barDataSet1, barDataSet2); 
barChartGroup.setData(data); 

Das Beispiel zeigt auch, wie Strichbreite setzen und Lücken zwischen den Stäben/Gruppen von Stangen.

Übrigens, MPandroidChart hängt davon ab, dass Ihre Einträge sortiert sind. Unsortierte Listen werden möglicherweise nicht richtig gezeichnet. Außerdem hatten die beiden Gruppen von Einträgen zumindest im Beispiel den gleichen Satz von x-Werten, daher kann es sinnvoll sein, fehlende Werte zu ergänzen.

Über die Labels: Es scheint, dass es momentan nicht möglich ist, Labels wie Sie zu setzen. Eine Umgehung mit einer benutzerdefinierten ValueFormatter für die X-Achse finden Sie unter SO post by TR4Android.

Verwandte Themen