2016-03-10 12 views
6

C3.jsライブラリに慣れていないので、配列データを分割しようとすると混乱します。C3.jsグラフデータの分割について

瞬間私はjsonからいくつかの配列値を持っています。

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

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

私は、チャートに最初の配列jsondataを渡そうとしましたが、これらの値は、私が見てみたいものではありません同じ列に入ります。

私は私が作ったデモをご覧下さい独立したデータとなるこれらの配列の値をしたいし、それに

を名前をプッシュ: http://jsfiddle.net/q8h39/92/

と私が望む結果が enter image description here

アップデートのように見えるはずですjsonデータ形式:

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

    } 
} 
+0

チェックアウト私はあなたのために作られたこのバイオリンは、いくつかの質問を支援する必要があります。http:// jsfiddle.net/4yqwtuwq/ – luke

+0

このようなデータを定義するときにこれを行うことができますが、そこではJSONに従ってデータを呼び出す必要があります。配列を使用して値を渡す必要があります – anson920520

+0

入手しました。おそらく、データをループして、作成した配列に結合してから、その配列をチャートデータとして使用する必要があります。それは理にかなっていますか? – luke

答えて

1

data.jsonにJSONオブジェクトtと、そのJSONの値の配列にdata.keys.valueを設定します。

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、あなたがこのためにC3のv0.4.11を必要とする(keys.valueのドット構文が追加されたばかりです)、あなたのJSONオブジェクトは配列でなければなりません(現在は無効です)。あなたはJSONの形式に最初の質問から2つの配列を変換したい場合は

、これを試してみてください。

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