viz = {
const margin = 50
const width = 1000 - margin * 2
const svgW = d3.select(DOM.svg(width + margin * 2, height + margin * 2))
const svg = svgW.append('g').attr('transform', `translate(${margin},${margin})`)
var x = d3.scaleLinear().domain([0,data.length]).range([0,width])
var yAxis = d3.axisLeft(y)
svg.selectAll('g')
.data(stack).enter()
.append('g')
.selectAll('rect')
.data(d => d).enter()
.append('rect')
.attr('x', (d,i) => x(i))
.attr('width', width/data.length)
.attr('height', d => {
return y(d[0])-y(d[1])
})
.attr('y', d => y(d[1]))
.attr('fill', d => d.key == 'Births' ? 'lightBlue' : 'orange')
.attr('opacity', .5)
.attr('stroke', 'red')
.attr('stroke-width', 1)
svg.append('g')
.call(yAxis)
return svgW.node()
}