我的应用程序具有刷新功能,其中应清除图表上的所有当前数据,并且应从开始加载数据。我不想破坏dygraph并重新创建它,但只需要从开始清除现有数据和绘图。 我试过的是
g.rawdata_ = null; g.updateOptions({'file':g.rawdata _});
但它会引发错误。如果我将rawdata设置为0然后尝试更新,它不会清除数据。 有关如何做到这一点的任何建议吗?
答案 0 :(得分:4)
就像评论中的人说:
plotData = [[0,0]];
g.updateOptions(
{
'file': plotData
}
);
plotData必须包含的东西。您可以放置几种不同格式中的一种,但上述内容在过去对我有用。我正在更新一个情节并每秒刷新数据。为此,我在updateOptions之前预加载plotData。
祝你好运,Ĵ
答案 1 :(得分:1)
我面临几乎相同的问题。当用户单击按钮时,我会刷新图表。 dygraph的句柄是一个局部变量,例如。
var g = new Dygraph(...
这在函数内部被调用。问题在于图形,并且它所引用的所有变量(元素,数据等)都不会被破坏并保留在内存中。
我的解决方法是有一个全局对象,将chart_id作为键,并将图表的句柄作为值,并且每次调用相同的chart_id时,我都会检查全局对象中是否已存在该句柄,如果存在则销毁。这就是它的样子,
if(chart_handle[chart_id])
{
chart_handle[chart_id].destroy();
}
chart_handle[chart_id] = new Dygraph(...