0

我正在使用 JSON 将数据提取到我的数据库中。图表更新时,xAxis 是否可以转到 6 小时前、5 小时前、4 小时前、3 小时前、2 小时前、1 小时前?因为我使用 LM35 将温度导入我的数据库。我真的需要你的帮助。( 对不起,我的英语不好)。提前致谢。这是我的代码

$(function () {
$(document).ready(function() {
    Highcharts.setOptions({
        global: {
            useUTC: false
        }
    });





$(document).ready(function() {
        var options = {
            chart: {        
                renderTo: 'container',

                type: 'line',
                marginRight: 130,
                marginBottom: 65,
            },
            title: {
                text: 'Temperature Over Time',
                x: -20 //center
            },
            subtitle: {
                text: '',
                x: -20
            },
            xAxis: {
            tickInterval:12,
            range:20,
            categories:[]
            },


            scrollbar: {
                enabled: true,
        barBackgroundColor: 'gray',
        barBorderRadius: 7,
        barBorderWidth: 0,
        buttonBackgroundColor: 'gray',
        buttonBorderWidth: 0,
        buttonArrowColor: 'yellow',
        buttonBorderRadius: 7,
        rifleColor: 'yellow',
        trackBackgroundColor: 'white',
        trackBorderWidth: 1,
        trackBorderColor: 'silver',
        trackBorderRadius: 7
            },      


            yAxis: {
            min:0,
            max: 40,
                title: {
                    text: 'Temperature',
                },


                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#808080'
                }]
                },


            tooltip: {
                formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        this.x +': '+ this.y;
                }

            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -10,
                y: 100,
                borderWidth: 0
            },
            series: []
        }

       refreshDiv();
       $(window).scrollLeft($(window).width());
       setInterval(refreshDiv, 300000);
       function refreshDiv(){
        $.getJSON("data.php", function(json) {
        options.xAxis.categories = json[0]['data'];
            options.series[0] = json[1];
            chart = new Highcharts.Chart(options);
        });
        }

    });
    });
    });
4

1 回答 1

0

而不是这段代码:

$.getJSON("data.php", function(json) {
    options.xAxis.categories = json[0]['data'];
        options.series[0] = json[1];
        chart = new Highcharts.Chart(options);
    });

您可以使用setCategories函数和setData,但我建议创建图表,然后仅在示例中的间隔中使用addPoint函数: http : //www.highcharts.com/demo/dynamic-update 。如果 xAxis 不会正确,您可以使用日期时间类型和反转参数]( http://api.highcharts.com/highcharts#xAxis.reversed )

于 2013-09-26T10:23:02.920 回答