javascript - 当我在平移时更新dygraph时,如何使dygraph不丢失其y轴?

标签 javascript dygraphs

这可能有点晦涩,但我正在开发一个查看器应用程序,该应用程序可以将大型数据集分块,然后允许使用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 中的一个错误,现已修复。如果您下载最新版本(从 gi​​thub 或 dygraphs.com),您将不再遇到此问题。

如果您想要血淋淋的细节,解决方法如下: https://github.com/danvk/dygraphs/commit/97583b90be3e80c95654d010db8a4b3f8813bb7a

平移代码将数据存储在不属于它的对象中,当调用 updateOptions() 时,这些对象被破坏并随之而来的困惑。

关于javascript - 当我在平移时更新dygraph时,如何使dygraph不丢失其y轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528173/

相关文章:

javascript - ReactJS Canvas drawImage不显示html5视频元素

javascript - Dygraph - 如何更改日期格式的语言?

javascript - 从单独的文件调用 angular.module,找不到 Controller

javascript - 在JS中从json文件接收信息

Javascript:Promise.all 似乎没有解决

javascript - Dygraphs 图例格式

r - 在 Shiny 的应用程序中插入dygraph时出现问题

javascript - 使用 Dygraphs 将数据点添加到现有图表

javascript - 使用 Dygraphs 绘制图表 : Data sampling depending on zoom

javascript - 制作一个简单的私有(private)变量全局 - 访问主体元素