2013-05-28 3 views
8

노드 및 에지를 제공 할 수있는 라이브러리를 찾고 있으며 모든 노드의 좌표 목록을 멋지게 배치합니다. 그러나 에 대한 고정 위치를 제공해야하지만이지만 은 레이아웃 알고리즘이 고려해야하는 모든 노드가 아닙니다.증가 그래프 용 노드 그래프 레이아웃 라이브러리

저는 지금까지 graphviz (fdp, neato)를 시도해 보았습니다.이 노드는 특정 노드의 위치를 ​​유지하지 못하고 주변에 레이아웃을 구축했습니다.

라이브러리는 파이썬에서 사용할 수 있어야하므로 python 또는 c/C++이어야하며 자체 바인딩을 작성할 수 있습니다.

다음 그림은 제가 찾고있는 것을 정확하게 보여줍니다 (이것은 uDraw-project이며 라이브러리로 존재하지 않습니다). 그 당신에게 유용 경우

uDraw incremental layout

+1

이 문제에 대한 해결책을 찾았습니까? –

+0

저는 3D 공간에서 부분 그래프와 비슷한 것을 연구하고 있습니다 만, 어렵습니다. 각 업데이트마다 클라이언트에 전체 그래프 데이터를 보내지 않으려면 더 큰 노드에 상대적인 좌표를 어떻게 든 저장해야합니다. 아직 해결책이 없습니다. 유용한 것을 찾았습니까? – inf3rno

답변

1

당신은, 역에 graphviz에서이 작업을 수행 할 수 있습니다. 이를 수행하려면 먼저 오른쪽 그래프를 그린 다음 노드 15, 16 및 17이 style=invis으로 설정된 왼쪽 그래프를 그립니다. 그러면 여기에 표시된 것과 동일한 레이아웃을 얻을 수 있습니다.

왼쪽 그래프를 플로팅 할 때 가장 먼저 느낄 수있는 문제는 소프트웨어 (dot 또는 다른 것)가 자연스럽게 노드 15, 16 및 17없이 "멋지게 보이는"그래프를 그릴 것을 시도한다는 것입니다. 노드 15, 16 및 17이 나중에 필요할 경우 장착 할 공간을 충분히 확보하지 마십시오. 예를 들어, 노드 11과 노드 12 사이에 노드 12a를 삽입하려고하면 위에 표시된 그래프에 해당 노드의 여유 공간이 없습니다. 다른 한편으로, 노드 12a가 초기에 플롯되었지만 보이지 않는 경우 소프트웨어는 나중에 포함될 수있는 공간을 할당합니다.

관련 문제