2014-11-11 14 views
6

Tôi đang sử dụng bản phát hành MPAndroidChart library v2. Tôi đang cố gắng hiển thị 3 thanh, với dữ liệu được lấy từ cơ sở dữ liệu. Thật không may, thay vì nhìn thấy 3 thanh với dữ liệu của họ, xem chúng với cùng một kết quả. Xem ảnh chụp màn hình. Cảm ơn bạn đã giúp đỡ.MPAndroidChart BarChart DataSets được nhóm

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(); 

} 

kết quả enter image description here

Trả lời

4

Bạn có làm cho một đầu ra logcat của các giá trị bảng xếp hạng sẽ hiển thị? Có thể chúng không được lưu trữ chính xác trong cơ sở dữ liệu.

Mã của bạn có vẻ đúng với tôi.

Bạn cũng có thể thử nghiệm nó bằng cách chỉ cung cấp giá trị được xác định trước như ví dụ: 50 cho tất cả các quán bar và xem nếu nó được vẽ một cách chính xác.

Để thay đổi các cuộc gọi màu:

BarDataSet.setColor(...);

CẬP NHẬT: Hiện nay, một hướng dẫn rất chi tiết về cách tạo nhóm BarCharts sẵn trên trang GitHub chính thức của thư viện, dựa trên phiên bản v3 .0.0: Grouped BarChart tutorial

+0

ok, đã giải quyết, cảm ơn ... Bây giờ làm cách nào tôi có thể thay đổi giá trị màu? Tôi đã quản lý để thay đổi chỉ những truyền thuyết. cảm ơn – user3608814

+0

Được rồi, vui lòng xem chỉnh sửa của tôi. –

+0

Cảm ơn, tôi thực sự thích thư viện của bạn. Bạn đã làm một công việc tuyệt vời. – user3608814

Các vấn đề liên quan