Bowl of Fruit - General Update Pattern Special Cases
This example demonstrates the general update pattern in D3.js, showing how to handle entering, updating, and exiting elements in a dynamic data visualization. A bowl of fruit is rendered as SVG circles and text labels, with apples and lemons being added, removed, and replaced over time. The code uses `d3.scaleOrdinal` for color and radius mappings in `fruitBowl.js`, while `index.js` drives the animation with `setTimeout` calls that modify the data array and trigger re-renders. The visualization highlights special cases where data updates affect specific positions, such as removing the second fruit from the left.