来自php的highcharts动态数据

时间:2012-01-28 06:55:30

标签: php javascript highcharts

我正在尝试使用从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日绘制单个值,而不管正在推送的实际数据。

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);