Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <meta charset="utf-8">
- <style>
- body {
- font: 10px sans-serif;
- }
- .bar rect {
- fill: steelblue;
- shape-rendering: crispEdges;
- }
- .bar text {
- fill: #fff;
- }
- .axis path, .axis line {
- fill: none;
- stroke: #000;
- shape-rendering: crispEdges;
- }
- </style>
- <body>
- <script src="http://d3js.org/d3.v3.min.js"></script>
- <script>
- // Generate a distribution of 100 integers between 1 and 5
- var values = []
- for (var i = 0; i < 100; i++) { //Loop 100 times
- var newNumber = Math.round(Math.random() * 5); //New random number (0-5)
- values.push(newNumber); //Add new number to array
- }
- // A formatter for counts.
- var formatCount = d3.format(",.0f");
- var margin = {top: 10, right: 30, bottom: 30, left: 30},
- width = 960 - margin.left - margin.right,
- height = 500 - margin.top - margin.bottom;
- var x = d3.scale.linear()
- .domain([-1, 6])
- .range([0, width]);
- console.log('VALUES');
- console.dir(values);
- // Generate a histogram using five uniformly-spaced bins.
- var data = d3.layout.histogram()
- .bins(x.ticks(50))(values);
- console.log('DATA');
- console.dir(data);
- var y = d3.scale.linear()
- .domain([0, d3.max(data, function(d) { return d.y; })])
- .range([height, 0]);
- var xAxis = d3.svg.axis()
- .scale(x)
- .orient("bottom");
- var svg = d3.select("body").append("svg")
- .attr("width", width + margin.left + margin.right)
- .attr("height", height + margin.top + margin.bottom)
- .append("g")
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
- var bar = svg.selectAll(".bar")
- .data(data)
- .enter().append("g")
- .attr("class", "bar")
- .attr("transform", function(d) { return "translate(" + x(d.x) + "," + y(d.y) + ")"; });
- console.log(bar.append("rect")
- .attr("x", 1)
- .attr("width", x(data[0].dx) - 1)
- .attr("height", function(d) { return height - y(d.y); }));
- bar.append("text")
- .attr("dy", ".75em")
- .attr("y", 6)
- .attr("x", x(data[0].dx) / 2)
- .attr("text-anchor", "middle")
- .text(function(d) { return formatCount(d.y); });
- svg.append("g")
- .attr("class", "x axis")
- .attr("transform", "translate(0," + height + ")")
- .call(xAxis);
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement