मैं अपने डी 3 कोड को v3 से v4 में माइग्रेट कर रहा हूं और d3.zoom.x, d3.zoom.y गुणों के बराबर समीकरण ढूंढने वाले मुद्दे हैं।d3v4 - ज़ूमिंग (d3.zoom.x के बराबर)
यहाँ एक संक्षिप्त कोड हिस्सा है, सबसे महत्वपूर्ण तत्वों सहित है:
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.x को बदलने के लिए (एक्स) की कोशिश की है, zoom.y (y [0]) "
xAxis.scale(d3.event.transform.rescaleX(x));
yAxis[0].scale(d3.event.transform.rescaleY(y[0]));
हालांकि, इन केवल अक्ष rescale, डेटा गैर zommed छोड़कर।
के बाद से इस बल्कि पुराना है, क्या तुमने कभी एक समाधान मिला? मैं एक ही समस्या पर फंस गया हूँ। – jmk
इस दिन का समाधान नहीं मिला है - मैंने इंतजार करने का फैसला किया है जब तक v4 के लिए कोई बड़ा समुदाय न हो। –
** _ tl; dr: _ यह आपके रिफैक्टर को पुन: स्थापित करने में मदद कर सकता है, क्यों और कैसे चल रहा है, और इसके काम का एक उदाहरण चलने के लिए लिंक देखें ** मैं एक समान परियोजना पर काम कर रहा हूं जो एक पैनिंग/d3v4 और प्रतिक्रिया में समन्वय ग्रिड सिस्टम ज़ूमिंग। रास्ते में, मैंने यह [आलेख बताता है कि नया ज़ूमिंग/पैनिंग कैसे काम करता है] (http://emptypipes.org/2016/07/03/d3-panning-and-zooming/), और मुझे एहसास हुआ कि मुझे करना था पुनर्विचार करें कि मैंने अपने रिफैक्टर को कैसे संरचित किया। फिर, मैंने शुद्ध डी 3 में यह [कोडकैन जो मैं करने की कोशिश कर रहा था] (https://codepen.io/mduleone/pen/wJxrbj) बनाया। अभी भी प्रतिक्रिया पक्ष पर काम कर रहे हैं। – mduleone