Javascript 保持在y轴上平移的能力,而无需缩放d3.js v4

Javascript 保持在y轴上平移的能力,而无需缩放d3.js v4,javascript,d3.js,Javascript,D3.js,我是D3.js新手,但目前正在尝试使用D3.js v4构建甘特图 我已经设法将缩放功能添加到图形中,但我希望它在y轴上的行为有所不同。目前,我可以在y轴上平移和缩放,但我只想平移。这是因为缩放会导致所有元素在y轴图形上展开,从而产生问题。这个问题有简单的解决方法吗 这是我的秤: //Scale xAxis var xScale = d3.scaleTime() .domain([minDate, maxDate]) .range([

我是D3.js新手,但目前正在尝试使用D3.js v4构建甘特图

我已经设法将缩放功能添加到图形中,但我希望它在y轴上的行为有所不同。目前,我可以在y轴上平移和缩放,但我只想平移。这是因为缩放会导致所有元素在y轴图形上展开,从而产生问题。这个问题有简单的解决方法吗

这是我的秤:

//Scale xAxis
var xScale = d3.scaleTime()
                .domain([minDate, maxDate])
                .range([0, graphWidth])

//Scale yAxis
var yScale = d3.scaleLinear()
                .domain([1, 10])
                .range([50, 550])
这是我在缩放事件期间运行的函数

function zoom() {
    // re-scale x axis during zoom
   xAxis.transition()
         .duration(0)
         .call(d3.axisTop(xScale).scale(d3.event.transform.rescaleX(xScale)));

   // re-draw rectangles using new x-axis scale
   var new_xScale = d3.event.transform.rescaleX(xScale);
   var new_yScale = d3.event.transform.rescaleY(yScale);

   rect
    .attr("x", function(d) { return new_xScale(d.startDate) })
    .attr("y", function(d) { return new_yScale(d.id) - 35})
    .attr("width", function(d) { return new_xScale(d.endDate) - new_xScale(d.startDate) })

  taskInfo
    .attr("y", function(d) { return new_yScale(d.id) })
}
有什么想法吗