这可能有点晦涩,但我正在开发一个查看器应用程序,该应用程序可以将大型数据集分块,然后允许使用dygraphs进行查看,当您平移数据时,新的数据 block 会加载到任一侧。
问题是,当您在平移图表时更新图表时,它似乎失去了 y 轴范围。您可以在官方网站上的动态更新演示中看到这一点:
http://dygraphs.com/tests/dynamic-update.html
如果您按住 Shift 键并拖动进行平移,您将看到绘图(和 y 轴)随着新数据的添加而消失。要证明该错误,请在 Chrome 控制台中运行此命令,当绘图消失时,您将看到 [ NaN, NaN ] 输出:
window.setInterval(function() { console.log(window.g.yAxisRange()); }, 200);
现在,会有各种涉及计时器的解决方法,但最终这似乎是 dygraphs 库本身的一个错误。有没有简单的方法来修复补丁?或者,如果有一种方法可以判断平移何时正在进行,我可以简单地避免更改数据集,直到我知道用户不在平移中间 - 但没有官方回调或标志对此,并且它看起来内部 isPanning 标志已被小心地隐藏在本地范围的上下文对象上,这样就不会被我窥探。
修补或猴子修补此问题的最快方法是什么?
最佳答案
这是 dygraphs 中的一个错误,现已修复。如果您下载最新版本(从 github 或 dygraphs.com),您将不再遇到此问题。
如果您想要血淋淋的细节,解决方法如下: https://github.com/danvk/dygraphs/commit/97583b90be3e80c95654d010db8a4b3f8813bb7a
平移代码将数据存储在不属于它的对象中,当调用 updateOptions()
时,这些对象被破坏并随之而来的困惑。
关于javascript - 当我在平移时更新dygraph时,如何使dygraph不丢失其y轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528173/