Accepted answer

d3.scaleTime has to be treated differently on a number of fronts.

The scale doesn't take padding as an argument:

var x = d3.scaleTime()
    .domain(d3.extent(data, function(d) { return d.Date; }))
    .rangeRound([margin.left, width - margin.right]);

Time is continuous rather than discrete, so the widths of the bars need to be calculated manually, as a ratio of rect and series.length. I got this to work, but maybe you want something more elegant:

.attr("width", width/series.length - 450)

Related Query

More Query from same tag