proportionalSymbols = {
const svg = d3.create("svg")
.attr("viewBox", [0, 0, width, height]);
svg.append("path")
.datum(topojson.feature(basepolygons, basepolygons.objects.US_WGS84))
.attr("fill", "#ccc")
.attr("d", path_basemap) ;
svg.append("path")
.datum(topojson.mesh(basepolygons, basepolygons.objects.US_WGS84, (a, b) => a !== b))
.attr("fill", "none")
.attr("stroke", "gray")
.attr("stroke-linejoin", "round")
.attr("d", path_basemap);
const legend = svg.append("g")
.attr("fill", "#777")
.attr("transform", "translate(850,550)")
.attr("text-anchor", "middle")
.style("font", "10px sans-serif")
.selectAll("g")
.data([2e6,1e7, d3.max([...data.values()])])
.join("g");
legend.append("circle")
.attr("fill", "none")
.attr("stroke", "#ccc")
.attr("cy", d => -radius(d))
.attr("r", radius);
legend.append("text")
.attr("y", d => -2 * radius(d))
.attr("dy", "1.3em")
.text(format);
svg.append("g")
// I chose the color purple found from color brewer because it is a nice color without being too distracting or bright.
.attr("fill", "#88419d")
// The fill-opacity determines the transperancy of the circles so that all points can easily be seen and interpreted
.attr("fill-opacity", 0.5)
// I chose the outline to be darker then the fill color so that the circles can easily stand out from one another and the stroke-width determines the width of the outline of the point symbol
.attr("stroke", "#6e016b")
.attr("stroke-width", 0.5)
// The determines the shape of the point symbols. I chose circles since they are ghg emissions and release around the area of the site
.selectAll("circle")
.data(points.features
.map(d => (d.value = data.get(d.properties.GHGRP_ID), d))
//displays the value of each point by hovering over it
.sort((a, b) => b.value - a.value))
.join("circle")
//translates points to where they are located on the map and displays the values associated with each
.attr("transform", d => `translate(${path_points.centroid(d)})`)
.attr("r", d => radius(data.get(d.properties.GHGRP_ID)))
.append("title")
.text(d => `${d.properties.GHGRP_ID} : ${format(d.value)}`);
return svg.node();
}