D3学习:集群布局

今天这段代码敲完了有很多的疑问,暂且记下代码,之后慢慢想一下我不懂的地方

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>集群布局学习</title>
        <style type="text/css">
        .node {
            font: 12px sans-serif;
        }

        .link {
            fill:none;
            stroke:#ccc;
            stroke-width:1.5px;
        }

        .node circle {
            fill:#fff;
            stroke:steelblue;
            stroke-width:1.5px;
        }

        </style>
        <script type="text/javascript" src="../d3/d3.min.js"></script>
    </head>
    <body>
        <script type="text/javascript">

        var width = 500,
            height = 500;

        var cluster = d3.layout.cluster()
                        .size([width, height - 200]);

        var diagonal = d3.svg.diagonal()
                         .projection(function (d) {return [d.y, d.x];});

        var svg = d3.select("body")
                    .append("svg")
                    .attr("height", height)
                    .attr("width", width)
                    .append("g")
                    .attr("transform", "translate(40,0)");

        d3.json("MyCity.json", function (error, root) {
            var nodes = cluster.nodes(root);
            var links = cluster.links(nodes);

            console.log(nodes);
            console.log(links);

            var link = svg.selectAll(".link")
                          .data(links)
                          .enter()
                          .append("path")
                          .attr("class", "link")
                          .attr("d", diagonal);

            var node = svg.selectAll(".node")
                          .data(nodes)
                          .enter()
                          .append("g")
                          .attr("class", "node")
                          .attr("transform", function (d) {return "translate(" + d.y + "," + d.x + ")";});
                      node.append("circle")
                          .attr("r", 4.5);
                      node.append("text")
                          .attr("dx", function (d) {return d.children ? -28 : 8;})
                          .attr("dy", 3)
                          .text(function (d) {return d.name;});
        })
        </script>
    </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值