Boll of fruit - click to select
Five apples transition into a bowl, resizing and recoloring via ordinal scales, while click-to-select highlights a fruit with a black stroke. The D3 v5 data join manages enter, update, and exit states, animating radius and position with `transition().duration(1000)`. Apples are removed, replaced with lemons, and filtered over timed intervals, demonstrating object-consistent updates through a key function. SVG rendering with `scaleOrdinal` for colors and radii drives the interactive, animated visualization.
AI-generated description/* When we call selectAll and data, we create a "data join", we join data (in this case our 5 apples (array) and some elements (DOM elements in this case: our circle)
We have 3 case > Enter : we only have data, no elements
Update : we have both data and elements Exit : we only have elements but no data
In d3 we need to explicitly call thos 3 functions (.enter, .update, .exit)
selectAll give the elements part, .data give the data (always an array)
thanks to that d3 know exactly how much element are on the enter, update and exit */