{
const height = 500;
const padding = 20;
const svg = d3.create('svg').attr('width', width).attr('height', height);
const data = d3.range(20).map(()=>({x: Math.random(),y: Math.random(),r: Math.random()}));
const x = d3.scaleLinear().domain(d3.extent(data.map(d=>d.x))).range([padding, width-padding]);
const y = d3.scaleLinear().domain(d3.extent(data.map(d=>d.y))).range([height-padding, padding]);
const circles = svg.selectAll('circle').data(data)
.enter().append('circle')
.attr('cx', d => x(d.x))
.attr('cy', height+padding)
.attr('fill', 'steelblue')
.attr('r', d => d.r *10);
circles.transition()
.ease(d3.easeQuad)
.duration(3000)
.attr("cy", d => y(d.y));
return svg.node();
}