ハイチャートを使用して基本的な縦棒グラフを作成する必要があります。これが私のPHPコードです:
$query = "SELECT campaign_id, kpi, label, val FROM table WHERE id = $1";
$result = pg_prepare($db, "report", $query);
$result = pg_execute($db, "report", array($campaignID));
while ($row = pg_fetch_array($result, NULL, PGSQL_ASSOC))
{
$response['xlabels'][] = $row['label'];
$response['xdata'][] = (float)$row['val'];
}
pg_free_result($result);
pg_close($db);
echo json_encode($response);
PostgreSQLクエリは次のようにデータを返します(たとえば、campaign_id = 5)。
id | kpi | label | val
----+-----------+-------+------
5 | Voter | East | 0.18
5 | Non-Voter | East | 0.12
5 | Voter | West | 0.82
5 | Non-Voter | West | 0.88
私のAPIはとを保存しxlabels
ます:xdata
xAxis.categories
series
$.get('vote_api.php', {'id' : id}, function(data) {
options.chart.type = 'column';
options.xAxis.categories = data.xlabels;
options.series = data.xdata;
chart = new Highcharts.Chart(options);
}, "json");
kpi
私のシリーズとしての(Voter vs. Non-Voter)および私のxAxisとしての(East vs West)の正しいデータ形式( JSFiddlelabel
を参照してください):
xAxis.categories = ['East', 'West'];
series = [{name: 'Voter',
data: [0.18, 0.82]},
{name: 'Non-Voter',
data: [0.12, 0.88]}]
しかし、私のwhile loop
部分$response['xlabels'][] = $row['label']; $response['xdata'][] = (float)$row['val'];
は私にこのようなものを与えます:
[xlabels] => Array
(
[0] => East
[1] => East
[2] => West
[3] => West
)
[xdata] => Array
(
[0] => 0.18
[1] => 0.12
[2] => 0.82
[3] => 0.88
)
誰かがこれを行う方法についていくつかのヒントを与えるでしょうか?本当にありがたいです!!