Итак, позвольте мне убедиться, что я вас правильно понимаю:
Вы хотите, чтобы:
(1) изменить свойства на всех кругах одновременно, обновив один заданный объект. Например
ss.translate(10,10)
перемещает все круги на 10px вправо и 10px вниз.
(2) изменить свойства отдельных кругов, чтобы переместить круг (и связанные с ним элементы пути и текста).
ss[0].move(10, 10)
перемещает только первый круг.
Выполняет ли следующее то, что вы хотите?
var allCircles = r.set();
var circles = [];
for(var i=0; i < data.values.length; i++){
var s = r.set();
s.push(r.path("M "+ coord[i].x +" "+ coord[i].y +" L 247 247 z"));
s.push(r.circle(coord[i].x, coord[i].y, 50).attr({fill: '#fff', stroke: '#00adef', 'stroke-width': 2}));
s.push(r.text(coord[i].x, coord[i].y-41).attr({'font': '12px Arial', 'font-weight': 'bold', fill: '#474747', text: data.values[i].name}));
s.push(r.text(coord[i].x, coord[i].y-19).attr({'font': '28px Arial', 'font-weight': 'bold', fill: '#00adef', text: data.values[i].grade}));
circles.push(s);
for(var j = 0; j < s.length; j++) {
allCircles.push(s[j]);
}
}
Затем вы можете переместить все круги одновременно:
allCircles.translate(10, 10);
и переместите отдельный круг на:
circles[0].translate(10, 10);
Я правильно понимаю, что вы пытаетесь выполнить правильно?