D3 kodumu v3'ten v4'e geçiriyorum ve d3.zoom.x, d3.zoom.y özellikleri için bir eşdeğerini bulmakla ilgili sorunları yaşıyorum. Burada d3v4 - yakınlaştırma (d3.zoom.x ile eşdeğer)
en önemli elementler dahil olmak üzere kısa bir kod parçası, verilmiştir: I (x) "zoom.x değiştirmek için kullanabilir çalıştık this.init = function(obj, def) {
/* X-axis */
x = d3.scaleTime()
.range([0, width]);
xAxis = d3.axisBottom(x)
.ticks(ticks);
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")");
/* Y-axis */
for (var i = 0; i < 1; i++) {
// Returns the y and yAxis as arrays
createYAxis(i);
}
initZoom();
};
// Zoom trigger
var drawUpdXY = function(){
setPause(true);
drawUpd();
zoomY.y(y[0]);
zoomX.x(x);
zoom = d3.zoom()
.on("zoom", drawUpdXY);
zoomX = d3.zoom()
.on("zoom", drawUpdX);
zoomY = d3.zoom()
.on("zoom", drawUpdY);
};
; zoom.y (y [0] "
xAxis.scale(d3.event.transform.rescaleX(x));
yAxis[0].scale(d3.event.transform.rescaleY(y[0]));
Ancak, bunlar yalnızca ekseni yeniden boyutlandırır ve verileri zomasız bırakmaz.
bu oldukça eski olduğu için, hiç bir çözüm buldular? Aynı problemde sıkışıp kaldım. – jmk
Bu güne bir çözüm bulamadım - v4 için daha büyük bir topluluk olana kadar beklemeye karar verdim. –
** _ tl; dr: _ Refakatçınızı yeniden yapılandırmanıza yardımcı olabilir, neden ve nasıl yürüdüğüne dair bir bağlantıya ve bu çalışmanın bir örneğini görmeye çalışabilir ** Bir panayı uygulamaya çalışırken benzer bir proje üzerinde çalışıyorum/d3v4'te koordinat ızgara sistemini yakınlaştır ve React. Yol boyunca, bu [yeni yakınlaştırma/kaydırma çalışmasının nasıl yapıldığını açıklayan yazı] (http://emptypipes.org/2016/07/03/d3-panning-and-zooming/) ve bunu yapmak zorunda olduğumu farkettim. Yeniden düşüncemi nasıl yapılandırdığımı yeniden düşün. Daha sonra, bunu [dolduruyordum] [https://codepen.io/mduleone/pen/wJxrbj] saf d3'te [codepen] yarattım. Hala React tarafında çalışıyor. – mduleone