每分钟替换数据集

时间:2016-08-12 02:46:25

标签: javascript jquery highcharts highstock

我试图让我的Highstock图表每分钟更新一次,将现有数据集替换为从网址请求中提取的数据集(在不同时间会有不同的数据)。

到目前为止,我甚至无法根据手动更改来刷新数据。

到目前为止工作:https://jsfiddle.net/Lz8gLw8j/

我尝试测试更改数据,然后使用以下命令进行更新:

varData = [[0,0],[1,2]]
$('#chart2').highcharts().redraw();

哪个什么都没做。

3 个答案:

答案 0 :(得分:1)

您可以通过以下方式将新数据设置为高图:

     var newData = [
       [1251763200000, 23.61],
       [1251849600000, 23.60],
       [1251936000000, 23.79]
     ]

     var chart = $('#chart2').highcharts();
     chart.series[0].setData(newData);

     $('#chart2').highcharts().redraw();

更新了小提琴手:

https://jsfiddle.net/Lz8gLw8j/5/

答案 1 :(得分:0)

看起来有一个可以使用的加载事件

chart : {
    events : {
        load : function () {

            // set up the updating of the chart each second
            var series = this.series[0];
            setInterval(function () {
                var x = (new Date()).getTime(), // current time
                y = Math.round(Math.random() * 100);
                series.addPoint([x, y], true, true);
            }, 1000);
        }
    }
}

这是一个小提琴:https://jsfiddle.net/jjwilly16/Lz8gLw8j/6/

仅供参考:我从Highcharts网站上的示例中删除了这个:http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/dynamic-update/

答案 2 :(得分:0)

您可以使用isolateScope = element.isolateScope() 方法将数据添加到现有系列,并使用addPoint方法替换数据集。两种方法的第二个选项参数允许您重绘图表。数据应该是一个数组数组。嵌套数组包含绘制的实际数据。内部嵌套数组的第一个元素是epoch(x),而第二个元素是实际值(y)。该纪元是自1970年1月1日午夜GMT / UTC以来的秒数。我已经更新了小提琴,允许您添加数据点以及重置数据。

主要变化是这些方面:

setData

https://jsfiddle.net/Lz8gLw8j/7/