equal
deleted
inserted
replaced
|
1 var n = 20, // number of layers |
|
2 m = 200, // number of samples per layer |
|
3 data0 = d3.layout.stack().offset("wiggle")(stream_layers(n, m)), |
|
4 data1 = d3.layout.stack().offset("wiggle")(stream_layers(n, m)), |
|
5 color = d3.interpolateRgb("#aad", "#556"); |
|
6 |
|
7 var w = 960, |
|
8 h = 500, |
|
9 mx = m - 1, |
|
10 my = d3.max(data0.concat(data1), function(d) { |
|
11 return d3.max(d, function(d) { |
|
12 return d.y0 + d.y; |
|
13 }); |
|
14 }); |
|
15 |
|
16 var area = d3.svg.area() |
|
17 .x(function(d) { return d.x * w / mx; }) |
|
18 .y0(function(d) { return h - d.y0 * h / my; }) |
|
19 .y1(function(d) { return h - (d.y + d.y0) * h / my; }); |
|
20 |
|
21 var vis = d3.select("#chart") |
|
22 .append("svg:svg") |
|
23 .attr("width", w) |
|
24 .attr("height", h); |
|
25 |
|
26 vis.selectAll("path") |
|
27 .data(data0) |
|
28 .enter().append("svg:path") |
|
29 .style("fill", function() { return color(Math.random()); }) |
|
30 .attr("d", area); |
|
31 |
|
32 function transition() { |
|
33 d3.selectAll("path") |
|
34 .data(function() { |
|
35 var d = data1; |
|
36 data1 = data0; |
|
37 return data0 = d; |
|
38 }) |
|
39 .transition() |
|
40 .duration(2500) |
|
41 .attr("d", area); |
|
42 } |