在已经渲染的jquery flot图上绘制一个新系列

我有一个浮动图,它已经渲染了一个数据系列,即

var plot = $.plot($('#placeholder'), [data1], options); 

稍后,我将收到一些我想在同一图表上绘制的新数据,作为单独的数据系列。 有没有办法可以将这个新数据系列添加到现有图形中,而不必再次构建整个图形? 也就是说,我想避免像这样打另一个电话:

 var plot = $.plot($('#placeholder'), [data1, data2], options); 

而是像这样打个电话:

 plot.addSeries([data2], option); 

谢谢!

@Black Box Operations的一般细节非常好。 在重复调用$.plot(...)时,在最新版本(0.7)之前存在一些问题,内存泄漏。 升级到最新版本,或者查看plot.setData()plot.setupGrid()plot.draw()

您可以从API.txt获取setData,setupGrid和draw方法的详细信息

创建一个ajax调用,该调用可以提取您的信息,并通过重置图形信息将其发送到能够处理多个图形的方法。 首先,抓住包含图形的元素并将其存储在变量中,然后创建一个ajax调用,该调用将提取创建图形所需的信息。 成功时,调用resetGraph并传递信息。

 var dataview = $("#placeholder"); $.ajax({ url: "index.php", data: "stuff&junk&things", method: 'GET', dataType: 'json', success: function(msg){ resetGraph(msg.dataview, msg.data, msg.data_ticks, msg.) } }); function resetGraph(dataview, data, data_ticks ){ plot = $.plot(dataview, data, { points: { show: true, radius: 5 }, xaxis: { ticks: data_ticks, tickSize: 7 }, yaxis: {labelHeight: 2} }); } 

现在,当您需要更改图表时,只需触发对脚本的调用,获取信息,成功时将其发送到resetGraph,然后相应地更新。