function zoom_D2(svg) {
const extent = [[margin.left, margin.top], [width - margin.right, height - margin.top]];
svg.call(d3.zoom()
.scaleExtent([1, 8])
.translateExtent(extent)
.extent(extent)
.on("zoom", zoomed));
function zoomed(event) {
x0_D2.range([margin.left, width - margin.right].map(d => event.transform.applyX(d)));
svg.selectAll("rect").data(data.dat)
.attr("x", d => x0_D2(d[groupKey_D2])).attr("width", x0_D2.bandwidth())
.data(d => keys_D2.map(key => ({key, value: d[key]}))).selectAll("rect")
.attr("x", d => x1_D2(d.key)).attr("width", x1_D2.bandwidth());
svg.selectAll(".x-axis").call(xAxis_D2);
}
}