Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <meta charset="utf-8">
  3. <style>
  4.  
  5.     body {
  6.         font: 10px sans-serif;
  7.     }
  8.  
  9.     .bar rect {
  10.         fill: steelblue;
  11.         shape-rendering: crispEdges;
  12.     }
  13.  
  14.     .bar text {
  15.         fill: #fff;
  16.     }
  17.  
  18.     .axis path, .axis line {
  19.         fill: none;
  20.         stroke: #000;
  21.         shape-rendering: crispEdges;
  22.     }
  23.  
  24. </style>
  25. <body>
  26. <script src="http://d3js.org/d3.v3.min.js"></script>
  27. <script>
  28.  
  29.     // Generate a distribution of 100 integers between 1 and 5
  30.     var values = []
  31.  
  32.     for (var i = 0; i < 100; i++) {           //Loop 100 times
  33.         var newNumber = Math.round(Math.random() * 5);  //New random number (0-5)
  34.         values.push(newNumber);             //Add new number to array
  35.     }
  36.  
  37.     // A formatter for counts.
  38.     var formatCount = d3.format(",.0f");
  39.  
  40.     var margin = {top: 10, right: 30, bottom: 30, left: 30},
  41.             width = 960 - margin.left - margin.right,
  42.             height = 500 - margin.top - margin.bottom;
  43.  
  44.     var x = d3.scale.linear()
  45.             .domain([-1, 6])
  46.             .range([0, width]);
  47.  
  48. console.log('VALUES');
  49. console.dir(values);
  50.  
  51.     // Generate a histogram using five uniformly-spaced bins.
  52.     var data = d3.layout.histogram()
  53.             .bins(x.ticks(50))(values);
  54. console.log('DATA');
  55. console.dir(data);
  56.  
  57.     var y = d3.scale.linear()
  58.             .domain([0, d3.max(data, function(d) { return d.y; })])
  59.             .range([height, 0]);
  60.  
  61.     var xAxis = d3.svg.axis()
  62.             .scale(x)
  63.             .orient("bottom");
  64.  
  65.     var svg = d3.select("body").append("svg")
  66.             .attr("width", width + margin.left + margin.right)
  67.             .attr("height", height + margin.top + margin.bottom)
  68.             .append("g")
  69.             .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
  70.  
  71.     var bar = svg.selectAll(".bar")
  72.             .data(data)
  73.             .enter().append("g")
  74.             .attr("class", "bar")
  75.             .attr("transform", function(d) { return "translate(" + x(d.x) + "," + y(d.y) + ")"; });
  76.  
  77.     console.log(bar.append("rect")
  78.             .attr("x", 1)
  79.             .attr("width", x(data[0].dx) - 1)
  80.             .attr("height", function(d) { return height - y(d.y); }));
  81.  
  82.  
  83.  
  84.     bar.append("text")
  85.             .attr("dy", ".75em")
  86.             .attr("y", 6)
  87.             .attr("x", x(data[0].dx) / 2)
  88.             .attr("text-anchor", "middle")
  89.             .text(function(d) { return formatCount(d.y); });
  90.  
  91.     svg.append("g")
  92.             .attr("class", "x axis")
  93.             .attr("transform", "translate(0," + height + ")")
  94.             .call(xAxis);
  95.  
  96. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement