2016-03-10 13 views
6

Poiché non ho familiarità con la libreria C3.js, sono un po 'confuso quando ho provato a suddividere i dati della matrice.Informazioni sulla suddivisione dei dati del grafico C3.js

Per istante ho un valore di matrice da un json.

var jsondata=[[123],[45],[56],[22]]; 

    var jsondataName=[["apple"],["orange"],["banana"],["pear"]]; 

ho cercato di passare il primo array jsondata nel grafico ma questi valori vanno nella stessa colonna che non è qualcosa vorrei vedere.

Voglio che questi valore di matrice diventano dati indipendenti e spingere il nome in esso

Si prega di vedere la demo ho fatto: http://jsfiddle.net/q8h39/92/

E il risultato che voglio dovrebbe apparire come enter image description here

Aggiornamento il formato dati JSON:

"Name": apple, 
    "data": { 
     "value": 1434, 
     } 
    "Name": banana, 
    "data": { 
     "value": 342, 
     } 

    } 
} 
+0

Dai un'occhiata a questo violino che ho fatto per te, dovrebbe aiutare con alcune domande: http: // jsfiddle.net/4yqwtuwq/ – luke

+0

so che puoi farlo quando definisci i dati in questo modo, ma devo chiamare i dati in base al JSON lì devo passare il valore usando l'array – anson920520

+0

. Probabilmente dovrai eseguire il loop dei dati e combinarli in un array che crei, quindi utilizzare quell'array per i dati del grafico. Ha senso? – luke

risposta

1

È possibile t l'oggetto JSON per data.json e quindi impostare data.keys.value a una serie di valori in quella JSON:

var jsondata = [{ 
    "Name": "apple", 
    "data": { 
    "value": 1434, 
    }, 
}, { 
    "Name": "banana", 
    "data": { 
    "value": 342, 
    } 
}]; 

var chart = c3.generate({ 
    data: { 
    json: jsondata, 
    keys: { 
     value: [ 
     "name", "data.value" 
     ] 
    }, 
    type: "scatter" 
     //hide: true 
    } 
}); 

http://jsfiddle.net/aendrew/mz9ccbrc/

nb, È necessario C3 v0.4.11 per questo (la sintassi punto per keys.value è stato appena aggiunto) e il tuo oggetto JSON deve essere un array (al momento non è valido).

Se si desidera convertire i due array dalla tua domanda iniziale a quello formato JSON, provate questo:

d3.zip(jsondataName, jsondata) 
.map((d) => Object({name: d[0][0], data: { value: d[1][0] } }));