JQuery Flot:如何将数据添加到现有的点图而不是重绘

Aru*_*run 2 javascript jquery flot flotr2

我正在绘制一个点图,并且该图应该每5秒更新一次新数据。最小和最大范围始终固定

当前,当我从服务器获取新数据时,确实会将新数据合并到现有的source.data中并绘制出完整的图形。

因此,我不想一次又一次地重绘完整的数据。随着source.data长度的增加,性能下降。因此,除了重新绘制完整的数据,我还可以仅将新数据添加到现有图形中

请在这里找到源代码

var source = [
    { 
        data: [], 
        show: true, 
        label: "Constellation", 
        name: "Constellation",
        color: "#0000FF",
        points: { 
            show: true,
            radius: 2, 
            fillColor: '#0000FF'
        }, 
        lines: {
            show: false 
        }
    }
]

var options = {...}

$.getJSON(URL , function(data) {
   ...
   $.merge(source[0].data, new_data);
   plotObj = $.plot("#placeholder", source, options);
}
Run Code Online (Sandbox Code Playgroud)

小智 5

请按照以下步骤操作:

plotObj.setData(newData);
plotObj.setupGrid();  //if you also need to update axis.
plotObj.draw();       //to redraw data
Run Code Online (Sandbox Code Playgroud)

另一个有用的方法是getData()。使用此方法可以获取当前数据。

var data = plotObj.getData();
Run Code Online (Sandbox Code Playgroud)