【d3.js教程09】包图pack

最后更新于:2022-04-01 14:18:13

![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_57161005ea9ed.jpg) ~~~ <!DOCTYPE html> <html> <head> <script src="js/d3.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script> <meta charset="utf-8"> <title></title> <style type="text/css"> text{ font-size: 4px; } </style> </head> <body> <svg></svg> <script type="text/javascript"> var width =300; var height =300; var svg = d3.select("svg"); svg.attr("width",1000) .attr("height",1000) .attr("x",100) .attr("y",100); /*初始化包布局*/ var pack = d3.layout.pack() .size([ width, height]) .radius(10); d3.json("json/jiqun.json", function(error, root) { var nodes = pack.nodes(root); var links = pack.links(nodes); /*添加小球*/ svg.selectAll("circle") .data(nodes) .enter() .append("circle") .attr("fill","rgb(31, 119, 180)") .attr("fill-opacity","0.4") //很关键的,不设置的话就是一坨 .attr("cx",function(d){ return d.x; }) .attr("cy",function(d){ return d.y; }) .attr("r",function(d){ return d.r; }) .on("mouseover",function(d,i){ d3.select(this) .attr("fill","yellow"); }) .on("mouseout",function(d,i){ d3.select(this) .attr("fill","rgb(31, 119, 180)"); }); /*添加文字*/ svg.selectAll("text") .data(nodes) .enter() .append("text") .attr("dx",function(d){ return d.x-6; }) .attr("dy",function(d){ return d.y+2; }) .text(function(d,i){ return d.name; }) .style("fill",function(d){ return d.children?"blue":"white"; }); }) </script> </body> </html> ~~~
';