Javascript d3.js在重新缩放后获取新的域值

Javascript d3.js在重新缩放后获取新的域值,javascript,d3.js,rescale,Javascript,D3.js,Rescale,我尝试在重新缩放轴后获取新的轴值 我试图从回答的y.domain()中获取它们,但返回的值是初始值 那么我做错了什么 相关代码: function zoomed() { for(let i = 0; i < ys.length; i++){ yAxes[i].call( d3.axisLeft(ys[i]) .scale(d3.event.transform.rescaleY(ys[i])) ) } //Now I need th

我尝试在重新缩放轴后获取新的轴值

我试图从回答的
y.domain()
中获取它们,但返回的值是初始值

那么我做错了什么

相关代码:

function zoomed() {

  for(let i = 0; i < ys.length; i++){
    yAxes[i].call(
      d3.axisLeft(ys[i])
        .scale(d3.event.transform.rescaleY(ys[i]))
    )
  }

  //Now I need the new values

  console.log(ys[0].domain()) //returns [0, 10] which are my initial domain values for this axis.

}
函数缩放(){
for(设i=0;i
缩放后,屏幕上的值大于0小于10。 那么,如何获得我的域的新最小值和最大值

是对我的旧版本代码的篡改,它具有完全相同的行为(请参见
zoomed()
函数)


也许我误解了域是什么以及它是如何工作的,我需要的是我的轴的新的最大值和最小值。

根据小提琴上的代码回答:

  function zoomed() {
    let center = getBoundingBoxCenterX(rect);
    let chartsWidth = (2 * center) * d3.event.transform.k;
    d3.event.transform.x = center - chartsWidth / 2;
    xAxis.call(d3.axisBottom(x).scale(d3.event.transform.rescaleX(x)));
    yAxis.call(d3.axisLeft(y).scale(d3.event.transform.rescaleY(y)));
    zAxis.call(d3.axisRight(z).scale(d3.event.transform.rescaleY(z)));

    //here i need the new values
    console.log(y.domain()) //returns [0,6]
编辑

可以通过以下方式获得轴比例:

let leftAxis = d3.axisLeft(y).scale(d3.event.transform.rescaleY(y));
console.log('new domain values', leftAxis.scale().domain())

我有一个版本的小提琴的工作:

你能张贴一个小提琴或一个代码笔,你有什么是如此的添加小提琴问