Highstock 更新数据 getJson

Highstock Update Data getJson

我是 Javascript 的新手,并且可以使用以下代码:

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Temperatur</title>

        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <style type="text/css">
${demo.css}
        </style>
        <script type="text/javascript">

$(function () {

    $.getJSON('sqltojson.php', function (data) {
        // Create the chart
        $('#container').highcharts('StockChart', {


            rangeSelector: {

                allButtonsEnabled: true,
                buttons: [{
                    type: 'minute',
                    count: 60,
                    text: 'hour',
                    dataGrouping: {
                        forced: true,
                        units: [['minute', [1]]]
                    }
                }, {
                    type: 'minute',
                    count: 360,
                    text: '6 hour',
                    dataGrouping: {
                        forced: true,
                        units: [['minute', [1]]]
                    }
                }, {
                    type: 'all',
                    text: 'all',
                    dataGrouping: {
                        forced: true,
                        units: [['minute', [1]]]
                    }
                }],
                buttonTheme: {
                    width: 60
                },
                selected: 0
            },

            title: {
                text: 'Temperatur'
            },

            series: [{
                name: 'Temperatur',
                type: 'spline',
                data: data,
                color: '#0000FF',
                tooltip: {
                    valueSuffix: '°C'
                }

            }]
        });
    });

});
$(function () {

    $.getJSON('sqltojson2.php', function (data) {
        // Create the chart
        $('#container2').highcharts('StockChart', {


            rangeSelector: {

                allButtonsEnabled: true,
                buttons: [{
                    type: 'minute',
                    count: 60,
                    text: 'hour',
                    dataGrouping: {
                        forced: true,
                        units: [['minute', [1]]]
                    }
                }, {
                    type: 'minute',
                    count: 360,
                    text: '6 hour',
                    dataGrouping: {
                        forced: true,
                        units: [['minute', [1]]]
                    }
                }, {
                    type: 'all',
                    text: 'all',
                    dataGrouping: {
                        forced: true,
                        units: [['minute', [1]]]
                    }
                }],
                buttonTheme: {
                    width: 60
                },
                selected: 0
            },

            title: {
                text: 'Luftfeuchte'
            },

            series: [{
                name: 'Luftfeuchte',
        type: 'spline',
                data: data,
                color: '#FF0000',
                tooltip: {
                    valueSuffix: '%'
                }
            }]
        });
    });

});
        </script>
    </head>
    <body>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>

<div id="container" style="height: 400px; min-width: 310px"></div>
<div id="container2" style="height: 400px; min-width: 310px"></div>
    </body>
</html>

我现在想将两个图表合并到一个图表中,它应该每分钟更新一次。 目前我有两个 php 脚本。一个用于 [时间戳、温度],另一个用于 [时间戳、湿度]。

我尝试了在这里找到的几个代码片段,但由于我不具备 Javascript 知识,因此无法根据需要进行更改。

有人可以给我提示我应该尝试什么,或者我在哪里可以找到解释我必须做什么的东西吗?

提前致谢。

使用 setInterval() 运行 您的 javascript 您选择的每个时间间隔。

http://www.w3schools.com/jsref/met_win_setinterval.asp

是一个很好的教程,可以帮助您了解它是如何完成的。 我希望您可以利用目前的 javascript 知识休息一下。命名当前的两个函数,运行 它在 setInterval 函数中定义的另一个函数中。

如果要绘制两个图表,请将其作为 two-D 数组传递给 HighChart。 http://www.highcharts.com/demo 里面有很多例子,你可以照着做。

例如,将数组传递给包含绘制图形代码的函数,然后使用该变量为系列赋值。

function draw_first_chart(div_id,x_axis,data_input)
{
    $(div_id).highcharts({
        chart: {
        // ..//
    },
        title: {
            // ..//
        },

        xAxis: {
            // ..//
            },
            categories: x_axis
        },
        yAxis: {
            // ..//

        },
        tooltip: {
           // ..//
        },
        legend: {
            // ..//
        },
        series: data_input

    });

此处,如果要在x轴上显示有限值,将数组发送到变量x_axis,将其他数据作为数组发送到data_input。如果不只是忽略变量 x_axis 并将数组传递给 data_input。确保在

      data_input[i]['name'] 

应包含所有图表标题(湿度、温度)和

      data_input[i]['data'] 

包含数据。 i 是每个图表的编号。

希望对您有所帮助。