highcharts动画每秒多个样条

时间:2016-10-12 14:31:54

标签: javascript highcharts

我会找到包含两行实时数据的图表。 只需要每秒发送一次数据。

但是动画出错了!

这里是每秒添加数据的事件

events: {
                load: function () {

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

这里是基线的代码

series: [{
            name: 'Random data',
            data: (function () {
                // generate an array of random data
                var data = [],
                    time = (new Date()).getTime(),
                    i;

                for (i = -19; i <= 0; i += 1) {
                    data.push({
                        x: time + i * 1000,
                        y: Math.random()
                    });
                }
                return data;
            }())
        },
        {
            name: 'Random data',
            data: (function () {
                // generate an array of random data
                var data = [],
                    time = (new Date()).getTime(),
                    i;

                for (i = -19; i <= 0; i += 1) {
                    data.push({
                        x: time + i * 1000,
                        y: Math.random()
                    });
                }
                return data;
            }())
        }]
这里的小提琴! http://jsfiddle.net/g6ga6r5c/

我尝试过其他方式,重复事件等,但我不知道如何解决这个问题:/

寻求帮助

通过highcharts构建此文件,每秒doc文档 - &gt; http://www.highcharts.com/demo/dynamic-update/grid-light

1 个答案:

答案 0 :(得分:1)

当您添加多个点时,您需要确保仅添加的最后一个点告诉图表重绘自身。这就是addPoint函数的第二个参数:

  

options (对象redraw,[布尔shift],[布尔redraw],...)

     
      
  • true:布尔值   默认为redraw。是否在添加点后重绘图表。添加多个点时,强烈建议将chart.redraw()选项设置为false,而在完成添加点后显式调用false
  •   
     

- Series.addPoint() on Highcharts API documentation

要修复代码,只需在添加第一个点时将第二个参数设置为series.addPoint([x, y], false, true); bis.addPoint([x,0.5], true, true);

def index
    @kiwis = Kiwi.all
end

def destroy
    kiwi = Kiwi.find(params[:id])
    kiwi.destroy
    redirect_to 'index'
end

Amended JSFiddle demo