避免在 updateOptions 调用中清理 canvas

Avoid cleaning canvas in updateOptions call

我在信号绘图程序中工作,试图模拟许多示波器中可用的 'persistence' 功能。

我想阻止 dygraph canvas 为每个 updateOptions 调用清理。取而代之的是,我的情节应该被保留,直到明确要求清洁。此功能将允许我检查信号是否在一定时间内保持其相位。

我尝试在 updateOptions 函数中将 block_redraw 参数设置为 false,但没有成功。

有什么想法吗?

这并不是 dygraphs 设计的真正目的。您要求它呈现其数据源的完整历史记录,而不是其数据源的当前状态。

也就是说,here's the code 清除了绘图 canvas:

DygraphCanvasRenderer.prototype.clear = function() {
  this.elementContext.clearRect(0, 0, this.width, this.height);
};

因此,如果您覆盖它,它可能会执行您想要的操作:

DygraphCanvasRenderer.prototype.clear = function() {};

也就是说,除了提供您想要的行为外,这还可能会破坏很多东西(例如缩放和平移)。如果您访问 live random data 演示页面并将该片段复制到 JS 控制台,您可以看到这一点。

祝你好运!