Zwiększ i zmniejsz promień okręgu za pomocą przejścia d3

Próbuję stworzyć efekt pulsu na okręgu, zwiększając i zmniejszając jego promień. Chciałbym, aby kółko rosło i kurczyło się w oparciu o dany zestaw danych. Mogę tylko uzyskać funkcję przejścia do eteru, aby zwiększyć lub zmniejszyć promień, ale nie oba.

d3 automatycznie tworzy inny okrąg dla każdej wartości w tablicy. Jak mogę to zrobić, aby promień jednego koła rósł i kurczył się, gdy przechodzi on przez tablicę? poniżej znajduje się prosta wersja tego, co mam do tej pory. Dziękujemy za pomoc, jaką możesz zaoferować.

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");

questionAnswers(2)

yourAnswerToTheQuestion