对这个做了一个小小的改变
json数据也在以上链接
var width=screen.width-100, height=screen.height-160; //颜色尺度 var color = d3.scale.category20(); // var force=d3.layout.force() .charge(-120)//节点间的电荷,负数表示排斥,正数表示吸引 .linkDistance(60)//节点间的距离 .size([width,height]);//节点图的大小 var svg=d3.select("body").append("svg") .attr("width",width) .attr("height",height); d3.json("force.json",function(error,graph){//请求一个json文件,回掉函数 //回调函数包括两个参数,error以及返回的json数据,即返回的数据 force.nodes(graph.nodes) .links(graph.links) .start();//开始 //定义连接线 var link=svg.selectAll(".link") .data(graph.links) .enter() .append("line") .attr("class","link"); //定义节点 var node=svg.selectAll(".node") .data(graph.nodes) .enter() .append("circle") .attr("class","node") .attr("r",function(d){ return 5+d.group;//半径 }) .style("fill",function(d){ return color(d.group);//颜色 }) .call(force.drag); //鼠标悬停 node.append("title") .text(function(d){ return d.name; }); force.on("tick", function() { link.attr("x1", function(d) { return d.source.x; }) .attr("y1", function(d) { return d.source.y; }) .attr("x2", function(d) { return d.target.x; }) .attr("y2", function(d) { return d.target.y; }); node.attr("cx", function(d) { return d.x; }) .attr("cy", function(d) { return d.y; }); }); });
css
.node{ stroke:#fff; stroke-width:1.5px; } .link{ stroke:#999; stroke-opacity:.6; stroke-width:1; }
时间: 2024-10-13 21:37:33