chart = {
const svg = d3.select(DOM.svg(width, height));
svg.append("g")
.attr("fill", "steelblue")
.selectAll("rect")
.data(PM25)
.join("rect")
.attr("x", d => x(d.city))
.attr("y", d => y(d.value))
.attr("width", x.bandwidth())
.attr("height", d => y(0) - y(d.value));
svg.append("g")
.attr("fill", "white")
.attr("text-anchor", "end")
.style("font", "12px sans-serif")
.selectAll("text")
.data(PM25)
.join("text")
.attr("x", d => x(d.city) + x.bandwidth() / 2 + 5)
.attr("y", d => y(d.value) + 6)
.attr("dy", "0.35em")
.text(d => d.value);
svg.append("g")
.call(xAxis);
svg.append("g")
.call(yAxis);
svg.append("text")
.style("fill", "black")
.style("font-size", "25px")
.attr("class", "title")
.attr("x",width/2)
.attr("y", (margin.top /2) )
.attr("text-anchor", "middle")
.text("PM2.5 in 10 cities (2016)");
return svg.node();
}