With the data in place, it's now time to make it move. In the pure Canvas example, you drew each point on the canvas, then calculated new points adding five pixels to the previous point's position, removed the old image, and drew the new one with the advanced drops. You transitioned the points yourself.
Employing D3's transition methods differs in that we won't calculate the new position, but D3 will do it for us. You will bind the data to selections, ask D3 to transition the values, and while it transitions you will redraw the canvas for as long as the transition runs. On a top level, you only need two functions to do this:
databind(data) {
// Bind data to custom elements.
}
draw() {
// Draw the elements on the canvas.
}
It's pretty straightforward.