Javascript 缩放d3图形时更新x轴并附加新数据

Javascript 缩放d3图形时更新x轴并附加新数据,javascript,d3.js,Javascript,D3.js,我正在使用d3.behavior.zoom()编写代码,用于图形的放大和缩小。我的代码和图表几乎与[此]() 您可能会注意到,我们有update和reset功能。 Update有助于向d3添加新数据,reset有助于重置缩放 借助于d3.behavior.zoom(),我们现在可以放大、缩小和移动线条。当图形未缩放时,更新过程完全“正常” 但是,如果图形被缩放,当单击Update时,x轴总是被重置。(图表没有重置,而是向后移动。)我认为最相关的块是: function Update() { //

我正在使用
d3.behavior.zoom()编写代码,用于图形的放大和缩小。我的代码和图表几乎与[此]()

您可能会注意到,我们有
update
reset
功能。
Update
有助于向d3添加新数据,
reset
有助于重置缩放

借助于
d3.behavior.zoom()
,我们现在可以放大、缩小和移动线条。当图形未缩放时,更新过程完全“正常”

但是,如果图形被缩放,当单击
Update
时,x轴总是被重置。(图表没有重置,而是向后移动。)我认为最相关的块是:

function Update() {
//....
  svg.select(".x.axis").call(xAxis);
//....
}
我认为有两种解决办法

  • 一种是在缩放图形时,只需将新行/数据附加到当前行。在这种情况下,我们不需要更新比例,图形也不会向后移动

  • 另一个是允许图形在更新时向后移动,但x轴在不重置的情况下更新


问题:如何实施这两种解决方案

我喜欢第一种解决方案,但第二种也可以接受。如有任何建议,将不胜感激

非常感谢

=========================更新=========================


对于第一个解决方案,我已经部分实现了它。如果不进行缩放,可以将新行附加到现有行。但是,当图形被移动或缩放时,新行并没有附加到正确的位置,这是第一个解决方案的新行。

您的问题是什么?问题:如何实现这两个解决方案@对于第一个解决方案,不要调用
svg。选择(“.x.axis”)。调用(xAxis)如果缩放比例不是1。thanks@LarsKotthoff,那么如何以正确的方式更新轴?只要更新比例,缩放处理程序功能就会自动完成。