D3 is agnostic about the media that you render the data on. As a rule of thumb
If you want easy interactivity (out of the box since these are DOM nodes) + nifty rendering quality go for SVG.
If you want nifty animation that updates many particles, for canvas