{
let width = 960;
let height = 600;
let svg = d3.select(DOM.svg(width, height));
let g = svg.append("g");
g.selectAll("path")
.data(topojson.feature(boston, boston.objects.boston_neigh).features)
.enter().append("path")
.attr("d", bos_geoPath)
.style("fill", d=>colored_boston311[d.properties.Name])
.style("stroke", "black")
.on("mouseover",
d=>tooltip
.style("visibility","visible")
.text(d.properties.Name)
)
.on("mousemove",
d => tooltip
.style("top", (d3.event.pageY-10)+"px")
.style("left",(d3.event.pageX+10)+"px")
.text(d.properties.Name+":"+(ratio[d.properties.Name]*100).toString()))
.on("mouseout",
d => tooltip.style("visibility", "hidden"));
;
svg.append("g")
.attr("transform", "translate(700,40)")
.call(legend);
return svg.node();
}