function update (input) {
if (input == "states") {
y.domain([0 , d3.max(filtered, d => d.rate)]),
x.domain(d3.range(filtered.length)),
d3.selectAll(".ave").transition().ease(d3.easeBounceOut).duration(1000).attr("y" , y(0)).attr("height" , 0),
d3.selectAll(".states").attr("width" , x.bandwidth()).attr("x" , (d,i) => x(i)).data(filtered).transition().ease(d3.easeBounceOut).duration(1000).delay((d,i) => 1000 + 5*i).attr("y" , d => y(d.rate)).attr("height" , d => y(0) - y(d.rate)).attr("fill", function (d) {if (d.mandate == "no") {return "red"} else {return "steelblue"}}),
d3.selectAll(".x_axis").transition().duration(1000).call(d3.axisBottom(x).tickFormat((d,i) => filtered[i].state).tickSize(0)),
d3.selectAll(".y_axis").transition().duration(1000).call(d3.axisLeft(y).ticks(10, format).tickSizeOuter(0)),
d3.selectAll(".legend").transition().duration(3500).attr("opacity" , 1)
}
else if (input == "ave") {
d3.selectAll(".states").transition().duration(1000).attr("y" , y(0)).attr("height" , 0),
y.domain([0, d3.max(avg, d => d.rate)]),
x.domain(d3.range(avg.filter(d => d.month === "June").length)),
d3.selectAll(".ave").attr("x", (d,i) => x(i)).data(avg.filter(d => d.month === month)).attr("width" , x.bandwidth()).transition().ease(d3.easeExpIn).duration(1000).delay((d,i) => i).attr("y" , d => y(d.rate)).attr("height" , d => y(0) - y(d.rate)),
d3.select(".x_axis").transition().duration(1000).call(d3.axisBottom(x).tickFormat((d,i) => avg[i].key).tickSize(0)),
d3.selectAll(".y_axis").transition().duration(1000).call(d3.axisLeft(y).ticks(10, format).tickSizeOuter(0)),
d3.selectAll(".legend").transition().duration(1000).attr("opacity" , 0)
}
;}