{"version":"1.0","type":"rich","title":"D3 functions","description":"This example demonstrates D3 data joins with interactive buttons that remove or modify circles in an SVG scatterplot. Clicking \"Remove\" pops the last item from an array of x/y coordinates, redrawing the remaining circles; clicking \"Modify\" replaces one random entry with new values. The code uses `select`, `scaleLinear`, and `max` from d3 v5, along with a custom `rand` utility, to update circle positions via enter/merge/exit selections. The visualization highlights how shared update logic handles both new and existing elements.","provider_name":"VizHub AI Studio","provider_url":"https://vizhub.com","html":"<iframe src=\"https://vizhub.com/viz/5d4cc20494914a23ac78ef7e738a162c?mode=embed\" width=\"960\" height=\"500\" scrolling=\"no\" frameborder=\"0\"></iframe>","width":960,"height":500,"cache_age":3600}