bar graph w axes

by Laurie Skelly

HTML

<div id="svg_container"></div>

CSS

#svg_container {
  margin: 10px;
}

svg {
  border: 1px solid gray;
}

g rect {
  fill: none;
  stroke: gray;
}

g.one rect {
  fill: tomato;
}

g.two rect {
  fill: dodgerblue;
}

JavaScript

h = 400;
w = 500;
bar_w = 50;
bar_gap = 25;
bar_h = 100;


data = [{
  'class': 'one',
  'values': [100, 200, 300]
}, {
  'class': 'two',
  'values': [350, 250, 150]
}];

var svg =
  d3.select("#svg_container")
  .append("svg")
  .attr("id", "svg")
  .attr('height', h)
  .attr('width', w);

var gs = svg.selectAll('g')
  .data(data)
  .enter().append('g')
  .attr('transform', function(d,i) {
    trans = bar_gap + i*(bar_gap + bar_w); 
    return 'translate(' + trans + ',0)';
  })
  .attr('class', function(d) {
    return d.class
  });

var rects = gs.selectAll('rect')
	.data(function(d){return d.values})
	.enter().append('rect')
  .attr('x', function(d,i){
  	return 2*i*(bar_gap+bar_w);
  })
  .attr('y', function(d) {
    return h - d;
  })
  .attr('height', function(d) {
    return d;
  })
  .attr('width', bar_w);