Увеличение и уменьшение радиуса круга с помощью перехода d3

Я пытаюсь создать импульсное воздействие на круг, увеличивая и уменьшая его радиус. Я бы хотел, чтобы круг увеличивался и уменьшался в зависимости от заданного набора данных. Я могу получить только функцию перехода к эфиру, увеличить или уменьшить радиус, но не оба.

d3 автоматически создает разные круги для каждого значения в массиве. Как я могу сделать так, чтобы радиус одного круга увеличивался и уменьшался, когда он перебирает массив? простая версия того, что у меня есть, приведена ниже. Спасибо за любую помощь, которую вы можете предложить.

dataset = [30, 80, 150, 90, 20, 200, 180]

var svg = d3.select("body")
  .append("svg")
  .attr("width", w)
  .attr("height", h);

var circle = svg.selectAll("circle")
  .data(dataset)
  .enter()
  .append("circle");

circle
  .attr("cx", 500)
  .attr("cy", h/2)
  .attr("r", dataset[0])
  .attr("fill", "orange");

Ответы на вопрос(2)

Ваш ответ на вопрос