{
const svg = DOM.svg(550, 600);
const yearMinMax = d3.extent(data, (d) => +d.Year);
const circaMinMax = d3.extent(data, (d) => +d.radA);
const circbMinMax = d3.extent(data, (d) => +d.radB);
const circcMinMax = d3.extent(data, (d) => +d.radC);
const xScale = d3.scaleLinear().domain(yearMinMax).range([0, 1200]);
const sizeScale = d3.scaleLinear().domain([0, 100]).range([0.25, 1]);
const background = d3.select(svg)
.append("rect")
.attr("width", "100%")
.attr("height", "100%")
.attr("fill", "powderblue");
const discDataC = _.map(data, 'radC');
const discDataB = _.map(data, 'radB');
const discDataA = _.map(data, 'radA');
const labelData = _.map(data, 'Year'.replace(',',''));
const discsA = d3.select(svg)
.selectAll('rect.whiteR')
.data(discDataA)
.enter()
.append('rect')
.attr("width", function(d) { return d; })
.attr("height", 10)
.attr("x", -250)
.attr("y", 100)
.attr('transform', (d, i) => `translate(${550},${Math.floor(i) * 15})`)
.style("fill", "white")
.style("fill-opacity", 0.8)
.attr("class", "whiteR");
const discsA2 = d3.select(svg)
.selectAll('rect.whiteL')
.data(discDataA)
.enter()
.append('rect')
.attr("width", function(d) { return d; })
.attr("height", 10)
.attr("x", -250)
.attr("y", 100)
.attr('transform', (d, i) => `translate(${450},${Math.floor(i) * 15})`)
.style("fill", "white")
.style("fill-opacity", 0.8)
.attr("class", "whiteL");
const discsB = d3.select(svg)
.selectAll('rect.pocR')
.data(discDataB)
.enter()
.append('rect')
.attr("width", function(d) { return d; })
.attr("height", 10)
.attr("x", -250)
.attr("y", 100)
// .attr("cx", function(d, i) {return i * 250; })
.attr('transform', (d, i) => `translate(${550},${Math.floor(i) * 15})`)
.style("fill", "plum")
.attr("class", "pocR");
const discsB2 = d3.select(svg)
.selectAll('rect.pocL')
.data(discDataB)
.enter()
.append('rect')
.attr("width", function(d) { return d; })
.attr("height", 10)
.attr("x", -250)
.attr("y", 100)
// .attr("x", 250)
.attr('transform', (d, i) => `translate(${450},${Math.floor(i) * 15})`)
// .attr('transform', `translate(0, -100)`)
// .attr('transform', `scale(-1, 1)`)
// .attr('transform', (d, i) => `translate(100, 0)`)
.style("fill", "plum")
.attr("class", "pocL");
const discsC = d3.select(svg)
.selectAll('rect.mixedR')
.data(discDataC)
.enter()
.append('rect')
.attr("width", function(d) { return d; })
.attr("height", 10)
.attr("x", -250)
.attr("y", 100)
// .attr("cx", function(d, i) {return i * 250; })
.attr('transform', (d, i) => `translate(${550},${Math.floor(i) * 15})`)
.attr("class", "mixedR");
const discsC2 = d3.select(svg)
.selectAll('rect.mixedL')
.data(discDataC)
.enter()
.append('rect')
.attr("width", function(d) { return d; })
.attr("height", 10)
.attr("x", -250)
.attr("y", 100)
// .attr("cx", function(d, i) {return i * 250; })
.attr('transform', (d, i) => `translate(${450},${Math.floor(i) * 15})`)
.attr("class", "mixedL");
const labels = d3.select(svg)
.selectAll('text.year')
.data(labelData)
.enter()
.append("text")
.attr("y", function(d, i) {return Math.floor(i) * 15 + 110})
.attr("x", 150)
.text(function(d) { return d; })
.style("font", "12px Source Serif Pro")
.attr("class", "year")
;
return svg;
}