我尝试缩放后重新缩放x轴,但不适用于d3 v4

我正在尝试在代码中使用缩放功能, 看起来像

        var zoom = d3.zoom()                            
        .extent([[dims.svg_dx,dims.svg_dy],[dims.width-(dims.svg_dx*2),dims.height-dims.svg_dy]])
                       .scaleExtent([1,5])
                       .translateExtent([[-dims.width-(dims.svg_dx*2),-(dims.height-dims.svg_dy)],dims.height-dims.svg_dy]])
                       .on("zoom",zoomed);                
    clip = svg.append("defs")
                .append("clipPath")
                .attr("id","clip")
                .append("svg:rect")
                .attr("x",0)
                .attr("y",0)
                .attr("width",width)
                .attr("height",height);

        chartBody = group.append("g")
                                    .attr("class","chart")
                                    .attr("clip-path","url(#clip)")
                                    .append("g")
                                    .call(zoom)
    function zoomed() {         
        const event = d3.event.transform

         var new_x_scale = d3.event.transform.rescaleX(copyX);
         x = new_x_scale;
         x.domain(new_x_scale.domain());
         console.log(x.domain())
         x_axis.call(x_ax.scale(x));

         var new_y_scale = d3.event.transform.rescaleY(copyY);

      d3.event.transform.x = Math.min(0,Math.max(d3.event.transform.x,dims.svg_dx - dims.svg_dx * d3.event.transform.k));
      d3.event.transform.y = Math.min(0,Math.max(d3.event.transform.y,dims.svg_dy - dims.svg_dy * d3.event.transform.k));
     chartBody.attr("transform",'translate('+d3.event.transform.x+',0) scale('+d3.event.transform.k+',1)')

    }                               ;

在这里,我可以缩放x轴,但重新缩放不适用于该轴, 我正在使用d3 v4,

我要去哪里错了?

xu741852963 回答:我尝试缩放后重新缩放x轴,但不适用于d3 v4

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3096517.html

大家都在问