実行時に生成される次のjson配列があります。したがって、名前とデータのペアの数は異なります。
`var sales = { "SalesData" : [
{ "name" : "AllProducts|Canada", "data" :[44936.0,50752.0] },
{ "name" : "AllProducts|Mexico", "data" : [200679.0,226838.0] },
{ "name" : "AllProducts|USA", "data" : [288993.0,289126.0] }
]} `
このデータをハイチャートのシリーズに渡したいのですが。
これが現在私がやっている方法です。
series: [
{name:sales.SalesData[0].name,data:sales.SalesData[0].data},
{name:sales.SalesData[1].name,data:sales.SalesData[1].data},
{name:sales.SalesData[2].name,data:sales.SalesData[2].data}
]
しかし、配列の要素数が変更された場合、これは機能しません。この問題を解決するにはどうすればよいですか?デモコードが役立ちます。
以下の質問を参考にしましたが、問題を解決できませんでした。
私は問題を解決しました
Json配列を次のように変更しました。
var sales = [
{ "name" : "AllProducts123|Canada", "data" :[44936.0,50752.0] },
{ "name" : "AllProducts|Mexico", "data" : [200679.0,226838.0] },
{ "name" : "AllProducts|USA", "data" : [288993.0,289126.0] }
]
それを直接、ハイチャートのシリーズに渡します。
series:sales
やった!!!!!
series
配列を手動で作成する代わりに、sales
変数データをループして配列を作成できます。したがって、sales.SalesData
配列内の要素の数が何であれ、すべての項目はseries
配列内に存在します
var series = [],
salesData= sales.SalesData;
for (var i=0 i< salesData.length; i++) {
series.Push({"name" : key, "data" : sales[key]})
}
この構築されたseries
配列は、highcharts
メソッドに引数として渡す必要があるオブジェクトの一部です。
var chartdata = {
chart: {type: 'column'},
title: {text: 'Sales Data'},
xAxis: {
categories: ['Category 1','Category 2']
},
yAxis: {
min: 0,
title: {text: 'Sales'}
},
series : []
}
chartdata.series = series;
$('#chart').highcharts(chartdata);
ここで#chartは、グラフを表示するコンテナです。
特定の種類のグラフを表示する方法の詳細については、グラフの種類ごとに デモページ で利用できるフィドルを参照することもできます。