Javascript 为什么';我的Y轴是否在D3中更新?

Javascript 为什么';我的Y轴是否在D3中更新?,javascript,d3.js,scale,axis,Javascript,D3.js,Scale,Axis,我正在尝试更新我的Y轴。该图以Y轴0-700开始。将加载一个新的数据集,该数据集将改为0-9。我使用以下代码更新我的比例,然后调用我的轴、缩放和圆数据点,以便它们可以使用新的比例,但没有任何更改 function updateScaleY(newHeight){ console.log(d3.max(newHeight, Number)); var yScale = d3.scale.linear() .domain([0, d3.max(newHeight,

我正在尝试更新我的Y轴。该图以Y轴0-700开始。将加载一个新的数据集,该数据集将改为0-9。我使用以下代码更新我的比例,然后调用我的轴、缩放和圆数据点,以便它们可以使用新的比例,但没有任何更改

function updateScaleY(newHeight){

    console.log(d3.max(newHeight, Number));
    var yScale = d3.scale.linear()
        .domain([0, d3.max(newHeight, Number)])
        .range([height, margin.bottom]);

    SVG.select(".x.axis").call(xAxis);
    SVG.select(".y.axis").call(yAxis);
    SVG.selectAll("circle").attr("cx",function(d){return xScale(d)}).attr("cy",function(d){return yScale(d)});
    zoom.y(yScale);
}

为什么旧高度仍在([height,?您需要将新的比例分配给axis组件,以便正确地重新绘制。@Jonast92因为高度应该与整个svg的高度相同,但我希望比例将其固定,以便图形y轴仅具有较小的值,如0-9As@LarsKotthoff指出,您正在创建一个全新的比例,但y我们的轴仍然与旧的比例相关联。你可以将新的比例传递给轴,或者根本不创建新的比例——相反,调用旧y比例上的域和范围方法来更新它。噢,哇,你们中的两个人让我明白了这一点。我的目标是更新现有的比例,而不是创建新的比例一个新的。这为我解决了一些问题,尽管它仍然有一些问题。现在我可以更容易地查看它,因为我可以发现它更有意义