我会找到包含两行实时数据的图表。 只需要每秒发送一次数据。
但是动画出错了!
这里是每秒添加数据的事件
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
答案 0 :(得分:1)
当您添加多个点时,您需要确保仅添加的最后一个点告诉图表重绘自身。这就是addPoint
函数的第二个参数:
options
(对象redraw
,[布尔shift
],[布尔redraw
],...)
true
:布尔值 默认为redraw
。是否在添加点后重绘图表。添加多个点时,强烈建议将chart.redraw()
选项设置为false,而在完成添加点后显式调用false
。
要修复代码,只需在添加第一个点时将第二个参数设置为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