JSON Highstock的多个系列

时间:2013-04-21 12:19:03

标签: json highcharts highstock

我的HighStock有问题,我需要JSON的另一个系列。

get_json.php

中的代码
include('config.php');

$cp = $_REQUEST["c_prot"];

$r=("SELECT * FROM data WHERE cp='$cp'"); 
$result=mysql_query($r);

while($row = mysql_fetch_array($result)){
    $date= strtotime($row['cas'])*1000;  // timestamp
    $values=hexdec($row['data']);        // series1 
    $val=hexdec($row['src']);            // series2

    $array[]=array($date, $values,$val);  //output array
}
echo json_encode($array);

JSON输出格式正确:[1364852734000,557,2884],.... 但问题是,我没有找到如何将第二个系列从JSON添加到Highstock代码

我想在图表中显示x轴:时间戳                                  y轴:系列1 - >数据                                           series2-> SRC

图表现在仅显示在x轴时间戳和y轴数据上...但是series2不起作用:/

高股票代码:

<script>
$(function () {
    $.getJSON('http://localhost/vojto/get_json.php?c_prot=<?=$_REQUEST['
    c_prot '];?>', function (data) {

        // Create the chart
        $('#container').highcharts('StockChart', {

            chart: { //zooming
                zoomType: 'x',
                height: 400,
            },

            legend: { //legenda
                enabled: true,
                align: 'left',
                backgroundColor: '#FCFFC5',
                borderColor: 'black',
                borderWidth: 1,
                layout: 'vertical',
                verticalAlign: 'top',
                y: 100,
                shadow: true
            },

            rangeSelector: { //range selector
                buttonTheme: {
                    width: 40,

                },

                buttonSpacing: 3, //mezera mezi buttony
                enabled: true,

                buttons: [{
                    type: 'minute',
                    count: 60,
                    text: 'Hour'
                }, {
                    type: 'day',
                    count: 1,
                    text: 'Day'
                }, {
                    type: 'week',
                    count: 1,
                    text: 'Week'
                }, {
                    type: 'all',
                    text: 'Reset'
                }]
            },

            title: { //title grafu
                text: 'Chart'
            },

            series: [{ //serie
                name: 'Data',
                data: data,
                color: '#57c72f',
                marker: {
                    enabled: true,
                    radius: 3
                },
                shadow: true,
                tooltip: {
                    valueDecimals: 2
                }
            }],

            xAxis: { // X-osa
                type: 'datetime',
                title: {
                    text: 'Date/time axis',
                },
                minRange: 600000,

            },
            yAxis: {
                min: 0,
            },
            navigator: {
                series: {
                    color: '#57c72f',
                    fillOpacity: 0.3,
                }
            },
            credits: {
                enabled: false
            },

            tooltip: { // formátování hodnot po najetí kurzoru... hover
                formatter: function () {
                    var s = '<b>' + Highcharts.dateFormat('DateTime ' + '%d-%m-%y ' + '%H:%M:%S', this.x) + '</b>';

                    $.each(this.points, function (i, point) {
                        s += '<br/>Data value : ' + point.y;
                    });

                    /* formát  23-04-13 09:34:27 */
                    return s;
                }
            },
        });
    });
});
</script>

1 个答案:

答案 0 :(得分:0)

在你的剧本中:

$array = [];
while($row = mysql_fetch_array($result)){
    $date= strtotime($row['cas'])*1000;  // timestamp
    $values=hexdec($row['data']);        // series1 
    $val=hexdec($row['src']);            // series2

    $array[0][]=array($date, $values);  //output array
    $array[1][]=array($date ,$val); 
}

您需要将值粘贴到适当的系列索引。换句话说,您可以准备$ array()并将其添加到一个系列中。说实话,我没有数据所以这只是概念。