Time d3.js快速移动时间轴,最小重画?

Time d3.js快速移动时间轴,最小重画?,time,d3.js,transition,Time,D3.js,Transition,Mike Bostock的D3.js路径转换示例之一显示了一个图表,其中时间沿X轴,数据沿X轴显示并向左移动(想象一下Windows上任务管理器之类的“监视器”显示)。我正试图做同样的事情,让时间平稳地向左移动。但是有四张图(都是相同的时间尺度) 问题是:Mike在每次滴答声时都会重新调用时间轴生成器。在这一点上,这是图形绘制中最昂贵的部分,大约花费了90%的时间。有没有人知道如何做左滚动的其他方式,不需要每次都重新绘制?我曾想过尝试预先创建一个轴,然后使用平移和剪切仅显示相关部分,但想看看是否

Mike Bostock的D3.js路径转换示例之一显示了一个图表,其中时间沿X轴,数据沿X轴显示并向左移动(想象一下Windows上任务管理器之类的“监视器”显示)。我正试图做同样的事情,让时间平稳地向左移动。但是有四张图(都是相同的时间尺度)

问题是:Mike在每次滴答声时都会重新调用时间轴生成器。在这一点上,这是图形绘制中最昂贵的部分,大约花费了90%的时间。有没有人知道如何做左滚动的其他方式,不需要每次都重新绘制?我曾想过尝试预先创建一个轴,然后使用平移和剪切仅显示相关部分,但想看看是否有其他人有更好(即更快)的解决方案,或者知道某个地方的示例

谢谢,
Dave

有一个名为的D3插件框架,它的设计似乎完全符合您的描述。由于它建立在D3上,你仍然可以定制东西

但是,如果您希望自己在D3中实现这一点,您可能希望查看他们使用的方法,该方法基于使用HTML5画布将现有可视化向左移动,而不是重新渲染:


我认为预先创建时间轴,然后仅仅移动SVG视口应该是最佳性能。关于如何与缩放和平移交互有什么想法?