Мне кажется, что нет нативной функции для разгруппировки элемента в D3.Итак, я попытался удалить элемент из группы и затем воссоздать элемент методом добавления, используя этот stackoverflow ответ.
К сожалению, мой код ( fiddle ) содержит(как минимум) ошибка.Я не могу понять, что это такое.
[создайте четыре красных круга, а затем измените цвет первого с красного на зеленый после отделения его от группы всех кругов]
var svg = d3.select('svg');
var dataSet = [10, 20, 30, 40];
var group=svg.append("g");
var circles = group.selectAll('circle')
.data(dataSet)
.enter()
.append('circle')
.attr("r",function(d){ return d })
.attr("cx",function(d, i){ return i * 100 + 50 })
.attr("cy",50)
.attr("fill",'red');
var circle=circles.select("circle");
var removed = circle.remove();
var newcircle=svg.append(function() {
return removed.node();
});
d3.select(newcircle).attr("fill","green");