D3.js 以编程方式更改初始平移状态d3 v4

D3.js 以编程方式更改初始平移状态d3 v4,d3.js,D3.js,我定义了一个缩放功能: var zoom = d3.zoom().on("zoom", function () { svg.attr('transform', d3.event.transform); }); 并在这个svg变量上调用它: var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height) .

我定义了一个缩放功能:

var zoom = d3.zoom().on("zoom", function () {
                svg.attr('transform', d3.event.transform);
            });
并在这个
svg
变量上调用它:

var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height)
    .call(zoom)
    .append("g")
    .attr("transform", "translate("
        + width/10 + "," + height/2 + ")");
(其中宽度和高度恰好是屏幕的大小)

这非常有效,除了用户第一次缩放。缩放状态仍在原点,而不是
宽度/10
高度/2
平移


如何以编程方式更改缩放状态以解决此问题?

写了这篇文章后,我发现一个非常重要的问题

对我有效的是:

d3.select('svg').call(zoom.translateBy, width/10, height/2);