Fork of D3 Selection Exploration
This interactive example explores D3’s selection and data-join APIs. An SVG canvas fills the viewport, and a `d3.select` selection appends a root `<svg>` element. A function generates circles on a sine wave, updating their `cx`, `cy`, and `r` attributes through `selection.selectAll('circle').data(data).join('circle')`. The animation loop is commented out, so the visualization appears static; the code shows how to bind data to shapes and apply attribute updates via D3’s join operator.