2016-03-22 26 views
0

C3JS kullanarak bir grafiği çizmek için JSON nesnesi oluşturmada sorun yaşıyorum. Grafiği statik bir JSON kullanarak çizebiliyorum ancak verilerim dinamik ve grafiğim genel kalmalı, bu yüzden statik bir JSON geçiremiyorum. JSON'un Anahtar değerleri geneldir, yalnızca değerler değiştirilmelidir.javascript kullanarak c3js için bir json nesnesi oluşturun

JSON şu anki JSON biçimim şunun gibi görünüyor. İşte

[ 
    { 
     "Key": "data1", 
     "Metric": "field1", 
     "Total": 1 
    }, 
    { 
     "Key": "data1", 
     "Metric": "field2", 
     "Total": 1 
    }, 
    { 
     "Key": "data2", 
     "Metric": "field1", 
     "Total": 1 
    }, 
    { 
     "Key": "data2", 
     "Metric": "field2", 
     "Total": 4 
    }, 
    { 
     "Key": "data2", 
     "Metric": "field3", 
     "Total": 4 
    }, 
    { 
     "Key": "data3", 
     "Metric": "field1", 
     "Total": 1 
    }, 
    { 
     "Key": "data3", 
     "Metric": "field2", 
     "Total": 4 
    }, 
    { 
     "Key": "data3", 
     "Metric": "field3", 
     "Total": 4 
    } 
] 

grafik Kod olduğunu.

var xAxis = ['x','data1','data2','data3']; 
var data1 = ['field1', 6, 13, 4]; 
var data2 = ['field2', 3, 3, 5]; 
var data3 = ['field3, 21, 22, 4]; 

var data = [""] 




var full = [ 
    /*['x','data1','data2','data3'], 
    ['field1', 6, 13, 4], 
    ['field2', 3, 3, 5], 
    ['field3, 21, 22, 4]*/ 
]; 

full.push(xAxis); 
full.push(data1); 
full.push(data2); 
full.push(data3); 

var chart = c3.generate({ 
    data: { 
     x: 'x', 
     columns: full, 
     type: 'bar', 
    }, 
    bar: { 
     width: { 
      ratio: 0.7 // this makes bar width 50% of length between ticks 
     } 
    }, 
    axis: { 
     x: { 
      type: 'category' // this is needed to load string x value 
     } 
    }, 
    bindto: '#chart' 
}); 

benim yığılmış çubuk grafik çizmek için C3JS için besleme böylece bir nesne oluşturarak yardıma ihtiyacım var. Verileri json cevabımdan okumalı ve buna benzeyen bir diziye itmeliyim.

var xAxis = ['x','Agency','Direct','Employee Reference']; var data1 = ['Permanent', 6, 13, 4]; var data2 = ['Contract', 3, 3, 5]; var data3 
= ['Conract on Hire', 21, 22, 4]; 

Beslemeyi değiştirme şeklindeki herhangi bir öneri çok iyi olabilir. Bu, ilk StackOver postanız belirsizliği için üzgünüm. Önceden teşekkür ederiz.

cevap

0

Örnek

var data = [ 
{ 'date': '2015-01-01', 'Dept': null, 'SMV': 3}, 
{ 'date': '2015-01-02', 'Dept': 1, 'SMV': 4} 
]; 

bir örnek veri kümesi javascript veri kümesi oluşturma bakıyorum bu

var data = [ 
['date', '2015-01-01', 2015-01-02'], 
['Dept', null, 1], 
['SMV', 3, 4] 
]; 
+0

Merhaba Muhammed Mohsin Muneer, gibi o görünüyor. –

+0

Tüm kod şu adresten ulaşılabilir: http://jsbin.com/cerilugevo/edit?html,js,console Umut bu yardımcı olur! –

+0

jsbin'deki kod referansı, yalnızca nesneyi veriden ayırmak ve onu tek bir diziye aktarmaktır, ancak takılıp kaldığım farklı bir şeydir. i) Anahtar seçimler ilk dizide kalır. [data1, data2, data3] II) Şimdi meydan okuma başlıyor, [field1, 1,3,1], [field2, 2,1,3], [field3, 3,1, gibi görünen bir kombinasyon dizisi. 2] –

İlgili konular