使用flot更新dataSet会重置数据

Jon*_*Jon 7 jquery charts graphing flot

我有一个我想通过AJAX动态更新的flot图表.

我最初可以渲染图表,但每当我尝试更新dataSet并重绘图表时,它会重置我的所有数据点:

plot.setData(dataSet);
        plot.draw();
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几个不同的阵列设置,似乎我传递了正确的数据 - 图表只是不采取.

有人有主意吗?谢谢!

http://datasift.islsandbox.com/

此示例使用WebSockets,因此WebKit浏览器是您测试的最佳选择.

Ryl*_*ley 11

在您的代码中,您有两个使用flot设置的东西.在加载时,您执行以下操作:

var plot = $.plot($("#flotchart"), [{
    data: [[35, 0]],
    bars: {show: true, horizontal: true}
}]);
Run Code Online (Sandbox Code Playgroud)

然后,您将通过AJAX获取一些新数据并执行以下操作:

 var dataSet = [[pacCount, 0]];//pacCount is a number that increments each call
 plot.setData(dataSet);
 plot.draw();
Run Code Online (Sandbox Code Playgroud)

缺少的是,在您的初始调用中,您使用的是每个系列都是对象的数据格式,但是当您setData第二次调用时,您将使用"系列作为数组"变体.我不确定在哪里,但那是弄乱了.以下是在第二次调用中修复它的方法:

 var dataSet = [[pacCount, 0]];//pacCount is a number that increments each call
 plot.setData([{
    data:dataSet,
    bars: {show: true, horizontal: true}
 }]);
 plot.draw();
Run Code Online (Sandbox Code Playgroud)