我的应用程序具有刷新功能,其中图表上的所有现有数据都应该被清除,并且应该从开始加载数据。我不想破坏 dygraph 并重新创建它,而只需要清除现有数据并从头开始绘制。我尝试的是
g.rawdata_ = null; g.updateOptions({'file': g.rawdata_});
但它会抛出错误。如果我将 rawdata 设置为 0 然后尝试更新,它不会清除数据。关于如何做到这一点的任何建议?
就像评论里的小伙伴们说的:
plotData = [[0,0]];
g.updateOptions(
{
'file': plotData
}
);
plotData 必须有一些东西。您可能可以使用几种不同格式中的一种,但上述方法过去对我有用。我也在实时更新绘图并每秒刷新数据。为此,我在 updateOptions 之前预加载了 plotData。
祝你好运,
j
我面临着几乎同样的问题。当用户单击按钮时,我的图表会刷新。dygraphs 的句柄是一个局部变量,例如,
var g = new Dygraph(...
这在函数内部调用。问题是图表和它引用的所有变量(元素、数据等)永远不会被破坏并留在内存中。
我的解决方法是拥有一个全局对象,以chart_id 作为键,以图表的句柄作为值,每次调用相同的chart_id 时,我都会检查句柄是否已经存在于全局对象中,如果存在则销毁。原来是这样的
if(chart_handle[chart_id])
{
chart_handle[chart_id].destroy();
}
chart_handle[chart_id] = new Dygraph(...