D3.js TreeLayout with Boxes

D3.js with Rectangles appended as well as text. Using nodeSize, we can specify how big the rectangles are and make the TreeLayout separate accordingly.

HTML

<div id="body"></div>

CSS

.node {
    cursor: pointer;
}
.node circle {
    fill: #fff;
    stroke: steelblue;
    stroke-width: 1.5px;
}
.node text {
    font: 10px sans-serif;
}
.link {
    fill: none;
    stroke: #ccc;
    stroke-width: 1.5px;
}

body {
    overflow: hidden;
}

JavaScript

var margin = {
    top: 20,
    right: 120,
    bottom: 20,
    left: 120
},
width = 960 - margin.right - margin.left,
height = 800 - margin.top - margin.bottom;

var root = {
    "name": "flare",
        "children": [{
        "name": "analytics",
            "children": [{
            "name": "cluster",
                "children": [{
                "name": "AgglomerativeCluster",
                    "size": 3938
            }, {
                "name": "CommunityStructure",
                    "size": 3812
            }, {
                "name": "HierarchicalCluster",
                    "size": 6714
            }, {
                "name": "MergeEdge",
                    "size": 743
            }]
        }, {
            "name": "graph",
                "children": [{
                "name": "BetweennessCentrality",
                    "size": 3534
            }, {
                "name": "LinkDistance",
                    "size": 5731
            }, {
                "name": "MaxFlowMinCut",
                    "size": 7840
            }, {
                "name": "ShortestPaths",
                    "size": 5914
            }, {
                "name": "SpanningTree",
                    "size": 3416
            }]
        }, {
            "name": "optimization",
                "children": [{
                "name": "AspectRatioBanker",
                    "size": 7074
            }]
        }]
    }, {
        "name": "animate",
            "children": [{
            "name": "Easing",
                "size": 17010
        }, {
            "name": "FunctionSequence",
                "size": 5842
        }, {
            "name": "interpolate",
                "children": [{
                "name": "ArrayInterpolator",
                    "size": 1983
            }, {
                "name": "ColorInterpolator",
                    "size": 2047
            }, {
                "name": "DateInterpolator",
                    "size": 1375
            }, {
...