{
const svg = d3.create('svg')
.attr('width', usaWidth + usaMargin.left + usaMargin.right)
.attr('height', usaHeight + usaMargin.top + usaMargin.bottom);
const g = svg.append('g')
.attr('transform', `translate(${usaMargin.left}, ${usaMargin.top})`);
g.selectAll('path')
.data(usaGeo.features)
.join('path')
.attr('d', usaPath)
.attr('fill', '#d3d3d3')
.attr('stroke', 'white');
g.selectAll("circle")
.data(usaGeo.features)
.join("circle")
.attr("fill", "steelblue")
.attr("stroke", "steelblue")
.attr("fill-opacity", 0.25)
.attr("transform", state => `translate(${usaPath.centroid(state)})`)
.attr("r", state => radius(per100kCases.get(state.properties.NAME)));
g.append('g')
.attr('transform', `translate(${usaWidth},${usaHeight / 2})`)
.call(circleLegend, radius, [5000, 10000, 15000], 'COVID Cases per 100k');
return svg.node();
}