Open In App

D3.js linkRadial() Method

Last Updated : 30 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The d3.linkRadial() method returns a new link generator with radial tangents. It is typically used when the root is centered with the children spreading outwards from the root.

Syntax:

var link = d3.linkRadial()
    .angle(function(d) { return d.x; })
    .radius(function(d) { return d.y; });

Parameters: This function does not take any parameter.

Return Value: This method returns a new link generator.

Example:

HTML




<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
  
    <script src=
        "https://d3js.org/d3.v5.min.js">
    </script>
</head>
  
<body>
  
    <h1 style="text-align: center; color: green;">
        GeeksforGeeks
    </h1>
  
    <h3 style="text-align: center;">
        D3.js | linkRadial() Method
    </h3>
  
    <center>
    <svg id="gfg" width="200" height="200"></svg>
    </center>
  
    <script>
  
        var data = [
            {source: [100,25], target: [175,175]}, 
            {source: [100,25], target: [25,175]},
            {source: [100,25], target: [125,175]},
            {source: [100,25], target: [75,175]},
            {source: [100,25], target: [225,175]},
            {source: [100,25], target: [275,175]},
            {source: [100,25], target: [125,175]}]; 
        
        // Radial link generator
        var link = d3.linkRadial()
                    .angle(d => xAngleScale(d[0]))
                    .radius(d => yRadiusScale(d[1]));
  
        var xAngleScale = 
        d3.scaleLinear().domain([25,175]).range([(Math.PI, Math.PI *2)]);
        var yRadiusScale = 
        d3.scaleLinear().domain([25,175]).range([0, 80]);
        
        //Adding the link paths
        d3.select("#gfg")
        .selectAll("path")
        .data(data)
        .join("path")
        .attr("d", link)
        .classed("link", true)
        .attr("transform", "translate(100,100)");
  
    </script>
</body>
  
</html>


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads