2016-03-10 9 views
6

Ponieważ nie jestem zaznajomiony z biblioteką C3.js, jestem nieco zmieszany, gdy próbowałem podzielić dane Array.Informacje na temat podziału danych na wykresy C3.js

Na chwilę mam trochę wartości tablicy od json.

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

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

starałem się przekazać pierwsza tablica jsondata na wykresie, ale wartości te iść do tej samej kolumnie, która nie jest coś, co chciałby zobaczyć.

Chcę nich wartość array stać niezależne dane i wcisnąć nazwę na nim

proszę zobaczyć demo i wykonana: http://jsfiddle.net/q8h39/92/

a wynik chcę powinien wyglądać jak enter image description here

Aktualizacja format danych json:

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

    } 
} 
+0

Sprawdź ten skrzypce zrobiłem dla ciebie, powinno pomóc w niektórych kwestiach: http: // jsfiddle.net/4yqwtuwq/ – luke

+0

Wiem, że możesz to zrobić, kiedy definiujesz takie dane, ale muszę wywołać dane zgodnie z JSON tam, gdzie muszę przekazać wartość przy użyciu tablicy – anson920520

+0

Mam to. Prawdopodobnie będziesz musiał przepętlić dane, a następnie połączyć je w utworzoną tablicę, a następnie użyć tej tablicy do danych wykresu. Czy to ma sens? – luke

Odpowiedz

1

Możesz se t przedmiotem JSON data.json i ustawiony data.keys.value do tablicy wartości w tym 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, trzeba C3 v0.4.11 dla tego (składni kropka keys.value został dodany), a twój obiekt JSON musi być tablicą (obecnie jest niepoprawna).

Jeśli chcesz przekonwertować dwie tablice z początkowego pytania do tego formatu JSON, spróbuj tego:

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