2014-11-11 3 views
6

MPAndroidChart library 릴리스 v2를 사용 중입니다. 데이터베이스에서 가져온 데이터와 함께 3 개의 막대를 표시하려고합니다. 불행히도, 데이터가있는 3 개의 막대가 표시되는 대신 동일한 결과로 표시됩니다. 스크린 샷을 참조하십시오. 당신의 도움을 주셔서 감사합니다.MPAndroidChart BarChart 그룹화 된 데이터 세트

int [] x = {1,2,3}; 
Cursor c = db.rawQuery(sql, null); 
     int count = c.getCount(); 

     float value1 ; 
     float value2 ; 
     float value3 ; 
     String[] mesi = new String[count]; 

     for(int n=0; n<count; n++) { 
      c.moveToNext();  
      mesi[n]= c.getString(0);    
      value1 = c.getFloat(1); 
      value2 = c.getFloat(2); 
      value3 = c.getFloat(3); 

      ArrayList<String> xVals = new ArrayList<String>(); 
      for (int i = 0; i <x.length; i++) { 
       xVals.add(x.length + " " + mChart.getUnit());    
      } 

      ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>(); 
      ArrayList<BarEntry> yVals2 = new ArrayList<BarEntry>(); 
      ArrayList<BarEntry> yVals3 = new ArrayList<BarEntry>(); 

      for (int i = 0; i < x.length; i++) {     
       yVals1.add(new BarEntry(value1, i)); 
      } 

      for (int i = 0; i < x.length; i++) {     
       yVals2.add(new BarEntry(value2, i)); 
      } 

      for (int i = 0; i < x.length; i++) {     
       yVals3.add(new BarEntry(value3, i)); 
      } 

     // create 3 datasets with different types 
      BarDataSet set1 = new BarDataSet(yVals1, "Company A"); 
      set1.setColor(Color.rgb(104, 241, 175)); 
      BarDataSet set2 = new BarDataSet(yVals2, "Company B"); 
      set2.setColor(Color.rgb(164, 228, 251)); 
      BarDataSet set3 = new BarDataSet(yVals3, "Company C"); 
      set3.setColor(Color.rgb(242, 247, 158)); 

      ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>(); 
      dataSets.add(set1); 
      dataSets.add(set2); 
      dataSets.add(set3); 

      BarData data = new BarData(xVals, dataSets); 

      // add space between the dataset groups in percent of bar-width 
      data.setGroupSpace(0); 

      mChart.setData(data); 
      mChart.invalidate(); 

}    
     c.close(); 
    db.close(); 

} 

enter image description here

답변

4

가 차트를 표시해야하는 값의 로그 캣 출력을 했습니까 결과? 아마도 데이터베이스에 올바르게 저장되지 않았을 수 있습니다.

코드가 맞는 것 같습니다.

예를 들어 미리 정의 된 값을 제공하여 테스트 할 수도 있습니다. 모든 막대에 대해 50을 선택하고 올바르게 그려지는지 확인하십시오.

BarDataSet.setColor(...);

UPDATE : 릴리스 V3를 기반으로, 도서관의 공식 GitHub의 페이지에서 사용할 수 BarCharts을 그룹화 만드는 방법에 대한 매우 상세한 튜토리얼 지금이

색상 호출을 변경하려면 .0.0 : Grouped BarChart tutorial

+0

확인, 해결되었습니다 ... 어떻게 색상 값을 변경할 수 있습니까? 전설의 것만 바꿀 수있었습니다. 감사합니다 – user3608814

+0

좋아, 제발 내 편집을 참조하십시오. –

+0

고마워, 네가 정말 좋아하는 도서관이야. 당신은 훌륭한 일을했다. – user3608814