Fork of Bowl of Fruit - General Update Pattern Special Cases
This example demonstrates the general update pattern for handling dynamic data changes in D3.js v5, showing how SVG elements are added, removed, and modified in response to a sequence of timed events on a bowl of fruit. The visualization starts with five apples, then removes one, changes one apple into a lemon, and removes another apple, all while using `selection.selectAll`, `.enter()`, `.merge()`, and `.exit()` to manage the lifecycle of `g` groups containing circles and text labels. The code applies `scaleOrdinal` for both color and radius scales, mapping fruit types to specific visual properties, and uses `setTimeout` to trigger each update transaction.