source: Dev/trunk/d3/examples/bullet/bullet.js @ 76

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

d3

File size: 1.3 KB
Line 
1var w = 960,
2    h = 50,
3    m = [5, 40, 20, 120]; // top right bottom left
4
5var chart = d3.chart.bullet()
6    .width(w - m[1] - m[3])
7    .height(h - m[0] - m[2]);
8
9d3.json("bullets.json", function(data) {
10
11  var vis = d3.select("#chart").selectAll("svg")
12      .data(data)
13    .enter().append("svg:svg")
14      .attr("class", "bullet")
15      .attr("width", w)
16      .attr("height", h)
17    .append("svg:g")
18      .attr("transform", "translate(" + m[3] + "," + m[0] + ")")
19      .call(chart);
20
21  var title = vis.append("svg:g")
22      .attr("text-anchor", "end")
23      .attr("transform", "translate(-6," + (h - m[0] - m[2]) / 2 + ")");
24
25  title.append("svg:text")
26      .attr("class", "title")
27      .text(function(d) { return d.title; });
28
29  title.append("svg:text")
30      .attr("class", "subtitle")
31      .attr("dy", "1em")
32      .text(function(d) { return d.subtitle; });
33
34  chart.duration(1000);
35  window.transition = function() {
36    vis.map(randomize).call(chart);
37  };
38});
39
40function randomize(d) {
41  if (!d.randomizer) d.randomizer = randomizer(d);
42  d.ranges = d.ranges.map(d.randomizer);
43  d.markers = d.markers.map(d.randomizer);
44  d.measures = d.measures.map(d.randomizer);
45  return d;
46}
47
48function randomizer(d) {
49  var k = d3.max(d.ranges) * .2;
50  return function(d) {
51    return Math.max(0, d + k * (Math.random() - .5));
52  };
53}
Note: See TracBrowser for help on using the repository browser.