次のようなものを取得したい場合:

次に、このコードは、ID を認識しているノードに円を追加します。
function addCircle(nodeId, circleText){
var parentNode = cy.$('#' + nodeId);
if (parentNode.data('isCircle') || parentNode.data('circleId'))
return;
parentNode.lock();
var px = parentNode.position('x') + 10;
var py = parentNode.position('y') - 10;
var circleId = (cy.nodes().size() + 1).toString();
parentNode.data('circleId', circleId);
cy.add({
group: 'nodes',
data: { weight: 75, id: circleId, name: circleText, isCircle: true },
position: { x: px, y: py },
locked: true
}).css({
'background-color': 'yellow',
'shape': 'ellipse',
'background-opacity': 0.5
}).unselectify();
}
// ...
addCircle('1', 'Bubble A');
ただし、ノードの位置が判明した後、レイアウトが落ち着いたときに呼び出す必要があります。
ロックはそのノードを防ぐためにあり、それはサークルです。
jsFiddle デモ: http://jsfiddle.net/xmojmr/wvznb9pf/
子ノードの配置のサポートが実装されたら、ノードとその円を一緒に保持する複合ノードを使用する方がおそらく良いでしょう。
免責事項: 私は cytoscape.js の初心者です。自己責任で使用してください。