我有一个已经呈现一个数据系列的浮点图,即
var plot = $.plot($('#placeholder'), [data1], options);
稍后,我将收到一些我想在同一图表上绘制的新数据,作为单独的数据系列。有没有办法可以将这个新数据系列添加到现有图形中,而不必再次构建整个图形?也就是说,我想避免像这样打另一个电话:
var plot = $.plot($('#placeholder'), [data1, data2], options);
而是拨打这样的电话:
plot.addSeries([data2], option);
谢谢!
答案 0 :(得分:2)
@Black Box Operations的一般细节非常好。重复调用$.plot(...)
时,在最新版本(0.7)之前存在一些问题,内存泄漏。升级到最新版本,或者考虑做plot.setData()
,plot.setupGrid()
和plot.draw()
您可以从API.txt
获取setData,setupGrid和draw方法的详细信息答案 1 :(得分:1)
创建一个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,然后相应地更新。