symbolMap = {
const width = 600;
const height = 400;
const svg = d3.create('svg')
.attr('width', width)
.attr('height', height);
const projection = d3.geoAlbersUsa()
.fitSize([width, height], usaGeo);
const path = d3.geoPath().projection(projection);
svg.selectAll('path')
.data(usaGeo.features.filter(d => d.properties.NAME !== 'Puerto Rico'))
.join('path')
.attr('d', path)
.attr('stroke', 'white')
.attr('fill', '#d3d3d3');
const circles = svg.selectAll('circle')
.data(usaGeo.features.filter(d => d.properties.NAME !== 'Puerto Rico'))
.join('circle')
.attr('fill', 'steelblue')
.attr('fill-opacity', 0.5)
.attr('stroke', 'steelblue')
.attr('transform', d => `translate(${path.centroid(d)})`);
function update(date) {
circles.attr('r', d => radius(stateToDateToRate.get(d.properties.NAME).get(date)))
}
svg.node().update = update;
return svg.node();
}