chart2 = {
const svg2 = d3.create("svg")
.attr("viewBox", [0, 0, width, height]);
svg2.append("g")
.attr("fill", "steelblue")
.selectAll("rect")
.data(data)
.join("rect")
.attr("x", xBar(0))
.attr("y", (d, i) => yBar(i))
.attr("width", d => xBar(d.proportion) - xBar(0))
.attr("height", yBar.bandwidth())
.attr("fill", (d,i) => z(filledData.findIndex(x => x.spice === d.spice)))
svg2.append("g")
.attr("fill", "white")
.attr("text-anchor", "end")
.attr("font-family", "sans-serif")
.attr("font-size", 30)
.selectAll("text")
.data(data)
.join("text")
.attr("x", d => xBar(d.proportion) - 4)
.attr("y", (d, i) => yBar(i) + yBar.bandwidth() / 2)
.attr("dy", "0.35em")
.text(d => d.proportion);
svg2.append("g")
.call(xAxisBar);
svg2.append("g")
.call(yAxisBar);
svg2.append("text")
.attr("transform", `translate(${(width) / 2},${margin.top / 2})`)
.attr("text-anchor", "middle")
.style("font", "40px sans-serif")
.text(title);
return svg2.node();
}