D3之layout.force()

<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})
    })       

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值