我正在尝试使用从PHP动态生成的数据绘制图表(Spline)。我为此目的使用的JavaScript库是HighCharts。
PHP以
格式生成一组值array(
array("1304294461000",69,"1304899261000",28),
array("1304294431000",3,"1304899161000",32)
)
然后我使用json_encode传递到javascript数组。但是,当我将这些值作为数据推送时,它似乎不起作用。
例如,这是一个相关代码片段的示例,如 -
var namesArr = <?php echo json_encode($namesArr); ?>;
var progressTrendsData = <?php echo json_encode($progressTrendsData); ?>;
var chart;
var options = {
chart: {
renderTo: 'trendsDiv',
type: 'spline'
},
series: [{
name: '',
data: []
}]
};
for(var i=0;i<namesArr.length;i++) {
options.series.push({
name: namesArr[i],
data: progressTrendsData[i]
});
}
chart = new Highcharts.Chart(options);
选项包含图表所需的其他相关数据。 但是,上述代码唯一要做的就是在1月1日绘制单个值,而不管正在推送的实际数据。
答案 0 :(得分:0)
我倾向于同意马克对此的看法。很难确切地说你的数据看起来应该是这样的。尝试在highcharts demo page上查看ajax数据示例的数据加载部分。
<强>更新强>
尝试以下伪代码:
var chart;
var options = {
chart: {
renderTo: 'trendsDiv',
type: 'spline'
},
series: [{
name: '',
data: []
}]
};
var seriesInfo=[];
seriesInfo[0]={"name":"Series A","data":[]};
seriesInfo[1]={"name":"Series B","data":[]};
//Loop over the series and populate the data
seriesInfo[0].data.push({x:<insert Series A timestamp>,y:<insert Series A y value>});
seriesInfo[1].data.push({x:<insert Series B timestamp>,y:<insert Series B y value>});
options.series.push(seriesInfo[0]);
options.series.push(seriesInfo[1]);
chart = new Highcharts.Chart(options);