[javascript] Cytoscape.js에서 그래프의 노드와 엣지를 추가 또는 제거하여 동적으로 그래프를 변경하는 방법은 무엇인가요?
// 그래프 요소를 담을 컨테이너 생성
var container = document.getElementById('cy');
// 그래프 인스턴스 생성
var cy = cytoscape({
container: container,
elements: [
// 초기 그래프 요소 설정
{ data: { id: 'node1' } },
{ data: { id: 'node2' } },
{ data: { id: 'edge1', source: 'node1', target: 'node2' } }
],
style: [
// 그래프 요소의 스타일 설정
{
selector: 'node',
style: {
'background-color': 'red',
'label': 'data(id)'
}
},
{
selector: 'edge',
style: {
'line-color': 'blue',
'target-arrow-color': 'blue',
'target-arrow-shape': 'triangle'
}
}
]
});
// 새로운 노드 추가
cy.add({ data: { id: 'node3' } });
// 새로운 엣지 추가
cy.add({ data: { id: 'edge2', source: 'node2', target: 'node3' } });
// 노드와 엣지 제거
cy.remove('node1');
cy.remove('edge1');
위의 예제에서는 Cytoscape.js를 사용하여 그래프를 생성하고 초기 그래프 요소를 설정합니다. 그런 다음 add()
메소드를 사용하여 새로운 노드와 엣지를 추가합니다. remove()
메소드를 사용하여 특정 노드와 엣지를 제거할 수도 있습니다.
이 예제는 간단한 그래프 변경 방법을 보여줍니다. Cytoscape.js에는 다양한 기능과 옵션이 있어서 좀 더 복잡한 그래프를 만들고 변경할 수 있습니다. Cytoscape.js 공식 문서를 참조하면 더 자세한 내용을 확인할 수 있습니다.