2016-07-22 12 views
1

単純なhtmlページでC3ドーナツチャートを使用しています。私は、エラーなしで次のコードにチャート・ロードを使用する場合:C3チャートjsonデータフォーマット(JavaScript)

json : [{"Total Participants":4825},{"Male":3019},{"Female":1806},], 
keys : { 
    value : ['Total Participants', 'Male', 'Female' ], 
} 

しかし、それは静的でないように私は両方の「JSON」と「キー」を使用してjavascriptのための入力を構築する必要があります。私はここでajaxを使いたくないことに注意してください。私はJavaScriptを使用して入力

[{"Total Participants":4825},{"Male":3019},{"Female":1806},] 

['Total Participants', 'Male', 'Female' ] 

を構築したいです。ここでは私が試したコードは動作しませんでした。

上記のコードの出力は、私が望むものと似ていますが動作しません。私はいくつかの書式設定の問題があるかもしれないと信じています。

私は、次のように生成されたデータを使用しています:コンソールに次のエラー持つ

json : chartJsonData, 
keys : { 
    value : keysChart, 
} 

Uncaught TypeError: a.forEach is not a function 
+0

おそらく問題です配列の後のコンマは値 –

+0

と呼ばれ、data [i] .titleとは何ですか?またはあなたはtableData [i] .titleを使いたいですか? –

+0

@AlexandruMihai混乱して申し訳ありません。投稿を編集しました。タイトルは['Total Participants'、 'Male'、 'Female']です。値は[4825,3019,1806] – FlintOff

答えて

1
var arrData = []; 
var keysForChart = []; 

var jsJsonObj = new Object(); 

for (var it = 0; it < data.length; it++) { // data from an external json file. 
    keysForChart.push(data[it].title); 
    jsJsonObj[data[it].title] = data[it].value; 
} 

arrData.push(jsJsonObj); 

は、その後、次のコード

を使用してグラフを生成
c3.generate({ 
    bindto : '#chart', 
    data : { 
    json : arrData, 
    keys : { 
     value : keysForChart 
    }, 
    type : 'bar' 
    }, 
    ..... 
}); 
関連する問題