source: Dev/trunk/d3/examples/bundle/bundle-treemap.js @ 76

Last change on this file since 76 was 76, checked in by fpvanagthoven, 14 years ago

d3

File size: 1.6 KB
RevLine 
[76]1var w = 960,
2    h = 500,
3    fill = d3.scale.ordinal().range(colorbrewer.Greys[9].slice(1, 4)),
4    stroke = d3.scale.linear().domain([0, 1e4]).range(["brown", "steelblue"]);
5
6var treemap = d3.layout.treemap()
7    .size([w, h])
8    .value(function(d) { return d.size; });
9
10var bundle = d3.layout.bundle();
11
12var div = d3.select("#chart").append("div")
13    .style("position", "relative")
14    .style("width", w + "px")
15    .style("height", h + "px");
16
17var line = d3.svg.line()
18    .interpolate("bundle")
19    .tension(.85)
20    .x(function(d) { return d.x + d.dx / 2; })
21    .y(function(d) { return d.y + d.dy / 2; });
22
23d3.json("../data/flare-imports.json", function(classes) {
24  var nodes = treemap.nodes(packages.root(classes)),
25      links = packages.imports(nodes);
26
27  div.selectAll("div")
28      .data(nodes)
29    .enter().append("div")
30      .attr("class", "cell")
31      .style("background", function(d) { return d.children ? fill(d.key) : null; })
32      .call(cell)
33      .text(function(d) { return d.children ? null : d.key; });
34
35  div.append("svg:svg")
36      .attr("width", w)
37      .attr("height", h)
38      .style("position", "absolute")
39    .selectAll("path.link")
40      .data(bundle(links))
41    .enter().append("svg:path")
42      .style("stroke", function(d) { return stroke(d[0].value); })
43      .attr("class", "link")
44      .attr("d", line);
45});
46
47function cell() {
48  this
49      .style("left", function(d) { return d.x + "px"; })
50      .style("top", function(d) { return d.y + "px"; })
51      .style("width", function(d) { return d.dx - 1 + "px"; })
52      .style("height", function(d) { return d.dy - 1 + "px"; });
53}
Note: See TracBrowser for help on using the repository browser.