Transitions
...
function draw(drawData) {
var join = svg.selectAll("circle")
.data(drawData, function(x){return x.name})
join.enter()
.append("circle")
.style("fill", function(x){return x.colour})
.attr("r", 10)
.attr("cx", function(x){return xScale(x.weight)})
.attr("cy", function(x){return yScale(x.height)})
join
.transition()
.duration(1000)
.attr("cx", function(x){return xScale(x.weight)})
.attr("cy", function(x){return yScale(x.height)})
join.exit()
.transition()
.delay(1000)
.duration(500)
.attr("r", 0)
.remove()
}
...