mcgraths
8/14/2015 - 9:17 AM

D3 Bar Chart

D3 Bar Chart

.chart {
  padding-top: 25px;
}

.chart rect {
  fill: steelblue;
}

.chart rect:hover {
  fill: red;
}

.chart text {
  fill: white;
  font: 10px sans-serif;
  text-anchor: end;
}
var data = [{
  name: "Locke",
  value: 4
}, {
  name: "Reyes",
  value: 8
}, {
  name: "Ford",
  value: 15
}, {
  name: "Jarrah",
  value: 16
}, {
  name: "Shephard",
  value: 23
}, {
  name: "Kwon",
  value: 42
}];

var width = window.innerWidth - 15,
  barHeight = 20;

var x = d3.scale.linear()
  .range([0, width]);

var chart = d3.select(".chart")
  .attr("width", width);


  x.domain([0, d3.max(data, function(d) {
    return d.value;
  })]);

  chart.attr("height", barHeight * data.length + 25);

  var bar = chart.selectAll("g")
    .data(data)
    .enter().append("g")
    .attr("transform", function(d, i) {
      return "translate(0," + i * barHeight + ")";
    });

  bar.append("rect")
    .attr("width", function(d) {
      return x(d.value);
    })
    .attr("height", barHeight - 1);

  bar.append("text")
    .attr("x", function(d) {
      return x(d.value) - 3;
    })
    .attr("y", barHeight / 2)
    .attr("dy", ".35em")
    .text(function(d) {
      return d.name;
    });

chart.append("line")
  .attr("x1", x(10))  //<<== change your code here
  .attr("y1", 0)
  .attr("x2", x(10))  //<<== and here
  .attr("y2", chart.attr('height'))
  .style("stroke-width", 2)
  .style("stroke", "red")
  .style("fill", "none");

chart.append("line")
  .attr("x1", x(25))  //<<== change your code here
  .attr("y1", 0)
  .attr("x2", x(25))  //<<== and here
  .attr("y2", chart.attr('height'))
  .style("stroke-width", 2)
  .style("stroke", "red")
  .style("fill", "none");
<svg class="chart"></svg>
<script src="http://d3js.org/d3.v3.min.js"></script>

D3 Bar Chart

A minimal demonstration of how to create an HTML bar chart with D3. Fork this template to create your own chart.

Forked from Mike Bostock's Pen D3 Bar Chart.

A Pen by Captain Anonymous on CodePen.

License.