Fork of D3 Selection Exploration
This example demonstrates D3’s data join pattern through an animated sequence of circles whose positions and radii oscillate over time. The visualization updates at 60 frames per second by recreating a dataset with `makeData` and passing it to the `vizData` function, which uses `selection.selectAll('circle')` and `.join('circle')` to bind new data points. Each circle’s `cx`, `cy`, and `r` attributes are set from the data properties, producing a smooth wave-like motion across the SVG canvas. The visualization relies on D3 v6’s `select`, `range`, and `scaleLinear` utilities, with the `svg.call()` method triggering the drawing routine.