@daisha
To add arrow links in D3.js, you can use the "marker-end" attribute along with the "defs" element to create an arrowhead marker. Here's an example of how you can create arrow links in D3.js:
1
|
<svg width="500" height="500"></svg> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
// Create sample data const nodes = [ { id: 1, name: "Node 1" }, { id: 2, name: "Node 2" }, { id: 3, name: "Node 3" } ]; const links = [ { source: 1, target: 2 }, { source: 2, target: 3 } ]; // Create SVG element const svg = d3.select("svg"); // Create arrowhead marker svg.append("defs").append("marker") .attr("id", "arrow") .attr("viewBox", "0 -5 10 10") .attr("refX", 15) .attr("markerWidth", 6) .attr("markerHeight", 6) .attr("orient", "auto") .append("path") .attr("d", "M0,-5L10,0L0,5"); // Create links svg.selectAll("line") .data(links) .enter() .append("line") .attr("x1", d => nodes[d.source - 1].id * 100) .attr("y1", 250) .attr("x2", d => nodes[d.target - 1].id * 100) .attr("y2", 250) .attr("stroke", "black") .attr("marker-end", "url(#arrow)"); // Create nodes svg.selectAll("circle") .data(nodes) .enter() .append("circle") .attr("cx", d => d.id * 100) .attr("cy", 250) .attr("r", 10) .attr("fill", "blue"); |
In this code snippet, we first create an SVG element and define some sample data for nodes and links. Then, we create an arrowhead marker with ID "arrow" using the "defs" element. Finally, we create links between the nodes using the "line" elements and set the "marker-end" attribute to refer to the arrowhead marker.
When you run this code, you should see arrow links between the nodes in the SVG element. Feel free to customize the appearance of the arrowhead marker and the links according to your requirements.