为highcharts实时数据添加一个额外的点

时间:2012-07-11 04:38:24

标签: php javascript jquery highcharts

嗨,我需要一些帮助,为高级图表添加额外的点数系列。我让它实时更新,但只能得到一个点正常工作,但可以得到第二个点出现,但没有正确的值。

我在php文件(dashchart.php)中有以下内容:

//CREATE AN ARRAY AND ECHO AS JSON
    $ret = array($x, $y);
    $ret2 = array($x, $y1);
    echo json_encode($ret);
    echo json_encode($ret2);

$ x只是一个UNIX时间戳,$ y是数字。

调用数据的函数,然后传递给highcharts绘制:

function requestData() {
        $.ajax({
            url: 'api_dashchart.php', 
            success: function(point) {
                var series = chart.series[0],
                shift = series.data.length > 20; // shift if the series is longer than 20
                // add the point
                chart.series[0].addPoint(eval(point), true, shift);
                // add the point
                chart.series[1].addPoint(eval(point), true, shift);

                // call it again after one second
                setTimeout(requestData, 1000);  
            },
            cache: false
        });
    }

我知道它必须是非常基本的东西,但我刚刚开始使用Javascript并且无法理解它。非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

如果point的类型为json:

,请尝试以下代码
    var pointChart = new Array(point[0].xValue, point[0].yValue);
chart.series[0].addPoint(pointChart, true, shift);

如果point不是json,则相应地给出pointChart定义中该点的xValue和yValue的值。

答案 1 :(得分:1)

嗨,我正在看那个并得到以下解决方案

 $ret = array($x, $value1 , $value2);

然后

success: function(point) {
            var series = chart.series[0],
                shift = series.data.length > 20; // shift if the series is longer than 20
                 var series = chart.series[1],
                    shift = series.data.length > 20;


            // add the point
            chart.series[0].addPoint([point[0], point[1]], true, shift);
            chart.series[1].addPoint([point[0], point[2]], true, shift);

然后

series: [{
                name: 'Point1',
                data: []
            }, {
                name: 'Point2',
                data: []
            }]