function updateBars(dataset){
aScale.domain(d3.range(dataset.length))
var bars = d3.select(svg)
.selectAll("rect")
.data(dataset);
bars.enter()
.append("rect")
.attr("x", function(data, index) {
return width * 2;
})
.attr("y", function(data, index) {
return height - data;
})
.attr("width", aScale.bandwidth())
.attr("height", function(data, index) {
return data * 4;
})
.attr("fill", function(data, index) {
return "rgb(0, 0, " + (data / 3) + ")";
})
.merge(bars)
.transition()
.duration(500)
.attr("x", function(data, index) {
return aScale(index);
})
.attr("y", function(data, index) {
return height - data;
})
.attr("width", aScale.bandwidth())
.attr("height", function(data, index) {
return data * 4;
})
.attr("fill", function(data, index) {
return "rgb(0, 0, " + (data / 3) + ")";
})
bars.exit()
.transition()
.duration(500)
.attr("x", width * 2)
.remove();
let texts = d3.select(svg)
.selectAll("text")
.data(dataset)
texts.enter()
.append("text")
.text(function(data, index){
return data;
})
.attr("x", function(data, index) {
return width * 2;
})
.attr("y", function(data, index) {
return height - data + 15;
})
.attr("font-family", "sans-serif")
.attr("font-size", "11px")
.attr("fill", "white")
.attr("text-anchor", "middle")
.merge(texts)
.transition()
.duration(500)
.text(function(data, index){
return data;
})
.attr("x", function(data, index) {
return aScale(index) + aScale.bandwidth() / 2;
})
.attr("y", function(data, index) {
return height - data + 15;
})
texts.exit()
.transition()
.duration(500)
.attr("x", width * 2)
.remove();
}