D3.js zoom.scaleTo() Function Last Updated : 25 Jul, 2024 Comments Improve Suggest changes Like Article Like Report The zoom.scaleTo() function in D3.js is used to scale the current zoon transform of the selected elements to k.Syntax:zoom.scaleTo(selection, k[, p])Parameters: This function accept two parameter as mentioned above and described belowselection: This parameter can be selection or transition.k: This parameter is a scale factor, specified either as numbers or as functionsReturn Value: This function returns the zoom behavior.Below programs illustrate the zoom.scaleTo() function in D3.jsExample 1: HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v4.min.js"> </script> <style> circle { opacity: 0.7; } g.zoom-controls { cursor: pointer; pointer-events: all; } g.zoom-controls rect { fill: white; stroke: #596877; stroke-width: 1; } g.zoom-controls line { stroke: #596877; stroke-width: 2; } </style> </head> <body> <center> <h1 style="color: green;"> Geeksforgeeks </h1> <h3>D3.js | zoom.scaleTo() Function</h3> <svg> <g class="zoom-controls" transform="translate(10, 10)"> <g id="zoom-in" transform="translate(0, 0)"> <rect width="30" height="30"></rect> <line x1="5" y1="15" x2="25" y2="15"></line> <line x1="15" y1="5" x2="15" y2="25"></line> </g> <g id="zoom-out" transform="translate(30, 0)"> <rect width="30" height="30"></rect> <line x1="5" y1="15" x2="25" y2="15"></line> </g> </g> </svg> <script> var radius = 10; var svg = d3.select('svg'); var dimension = document.body.getBoundingClientRect(); var data = d3.range(0, 25).map(function() { return { x: getRandom(radius, dimension.width - radius), y: getRandom(radius, dimension.height - radius) } }); var zoom = d3.zoom() .on('zoom', function() { canvas.attr('transform', d3.event.transform); }) var canvas = svg .attr('width', dimension.width) .attr('height', dimension.height) .call(zoom) .insert('g', ':first-child'); canvas.selectAll('circle') .data(data) .enter() .append('circle') .attr('r', radius) .attr('cx', function(d) { return d.x; }).attr('cy', function(d) { return d.y; }).style('fill', function() { return d3.schemeCategory10[getRandom(0, 9)] }); d3.select('#zoom-in').on('click', function() { // Smooth zooming zoom.scaleTo(svg.transition().duration(750), 1.3); }); d3.select('#zoom-out').on('click', function() { // Ordinal zooming zoom.scaleTo(svg, 1 / 1.3); }); function getRandom(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; } </script> </center> </body> </html> Output:Example 2: HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v5.js"> </script> </head> <body> <center> <h1 style="color: green;"> Geeksforgeeks </h1> <h3>D3.js | zoom.scaleTo() Function</h3> <svg height="100px" width="100px"></svg> <script> const zoom_action = () => g.attr("transform", d3.event.transform) // Create the zoom handler const zoom = d3 .zoom() .on("zoom", zoom_action) // Get SVG element and apply zoom behaviour var svg = d3 .select("svg") .call(zoom) // Create Group that will be zoomed var g = svg.append("g") // Create circle g.append("circle") .attr("cx",0) .attr("cy",0) .attr("r", 5) .style("fill","green") // Use of zoom.scaleTo Function zoom.scaleTo(svg, 5) zoom.translateBy(svg, 50, 50) </script> </center> </body> </html> Output: Comment More infoAdvertise with us Next Article Company Wise Interview Preparation S SHUBHAMSINGH10 Follow Improve Article Tags : JavaScript Web Technologies D3.js Similar Reads Interview Preparation Interview Preparation For Software Developers Must Coding Questions - Company-wise Must Do Coding Questions - Topic-wise Company-wise Practice Problems Company Preparation Competitive Programming Software Design-Patterns Company-wise Interview Experience Experienced - Interview Experiences Internship - Interview Experiences Practice @Geeksforgeeks Problem of the Day Topic-wise Practice Difficulty Level - School Difficulty Level - Basic Difficulty Level - Easy Difficulty Level - Medium Difficulty Level - Hard Leaderboard !! Explore More... Data Structures Arrays Linked List Stack Queue Binary Tree Binary Search Tree Heap Hashing Graph Advance Data Structures Matrix String All Data Structures Algorithms Analysis of Algorithms Searching Algorithms Sorting Algorithms Pattern Searching Geometric Algorithms Mathematical Algorithms Randomized Algorithms Greedy Algorithms Dynamic Programming Divide & Conquer Backtracking Branch & Bound All Algorithms Programming Languages C C++ Java Python C# Go Lang SQL PHP Scala Perl Kotlin Web Technologies HTML CSS JavaScript Bootstrap Tailwind CSS AngularJS ReactJS jQuery NodeJS PHP Web Design Web Browser File Formats Computer Science Subjects Operating Systems DBMS Computer Network Computer Organization & Architecture TOC Compiler Design Digital Elec. & Logic Design Software Engineering Engineering Mathematics Data Science & ML Complete Data Science Course Data Science Tutorial Machine Learning Tutorial Deep Learning Tutorial NLP Tutorial Machine Learning Projects Data Analysis Tutorial Tutorial Library Python Tutorial Django Tutorial Pandas Tutorial Kivy Tutorial Tkinter Tutorial OpenCV Tutorial Selenium Tutorial GATE CS GATE CS Notes Gate Corner Previous Year GATE Papers Last Minute Notes (LMNs) Important Topic For GATE CS GATE Course Previous Year Paper: CS exams Like