<script type="text/javascript">
var dataset={
nodes:[
{ name: "Adam" },
{ name: "Bob" },
{ name: "Carrie" },
{ name: "Donovan" },
{ name: "Edward" },
{ name: "Felicity" },
{ name: "George" },
{ name: "Hannah" },
{ name: "Iris" },
{ name: "Jerry" }],
edges: [
{ source: 0, target: 1 },
{ source: 0, target: 2 },
{ source: 0, target: 3 },
{ source: 0, target: 4 },
{ source: 1, target: 5 },
{ source: 2, target: 5 },
{ source: 2, target: 5 },
{ source: 3, target: 4 },
{ source: 5, target: 8 },
{ source: 5, target: 9 },
{ source: 6, target: 7 },
{ source: 7, target: 8 },
{ source: 8, target: 9 }
]
}
var w=500;
var h=300;
var force = d3.layout.force()
.nodes(dataset.nodes)
.links(dataset.edges)
.size([w, h])
.linkDistance([80])
.charge([-100])
.size([500,300])
.start();
var svg=d3.select("body")
.append("svg")
.attr("width",w)
.attr("height",h)
var colors=d3.scale.category10();
var edges=svg.selectAll("line")
.data(dataset.edges)
.enter()
.append("line")
.style("stroke","#ccc")
.style("stroke-width",1);
var texts=svg.selectAll("text")
.data(dataset.nodes)
.enter()
.append("text")
.text(function(d){
return d.name;
})
.style("fill",function(d,i){
return colors(i);
})
.call(force.drag)
force.on("tick",function(d,i){
edges.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;})
texts.attr("x",function(d){return d.x})
.attr("y",function(d){return d.y})
})
D3之layout.force()
最新推荐文章于 2021-08-07 16:32:35 发布