2017-11-02 4 views
0

GraphViz를 사용하여 원형 그래프를 그리려고하고 있는데이 그래프에 circo을 사용하는 것이 가장 좋습니다.circo 레이아웃이있는 graphviz에서 엣지 래핑을 방지하는 방법

7 년 전 게시물 How to prevent edges in graphviz to overlap each other에서 조언을 받아서 overlap=falsesplines=true을 사용하면 가장자리가 여전히 서로 겹칩니다.

전체 그래프

here 볼 수 있고, 다음과 같이 정의된다

현재로서는
digraph question6 { 

layout="circo" 
overlap=false 
splines=true 
node [shape="circle"] 

G1 [label="1, G"] 
G2 [label="2, G"] 
D11 [label="1, D1"] 
D12 [label="2, D1"] 
D21 [label="1, D2"] 
D22 [label="2, D2"] 

G1 -> D12 [label="c"] 
G1 -> G2 [label="a"] 
G2 -> D12 [label="a"] 
D11 -> G1 [label="d"] 
D11 -> D21 [label="e"] 
D11 -> D12 [label="c"] 
D12 -> G2 [label="d"] 
D12 -> D22 [label="c"] 
D21 -> G1 [label="d"] 
D21 -> D22 [label="c"] 

D22 -> D21 [label="b"] 
D22 -> G2 [label="d"] 
} 
+0

나는 이것이 가능하지 않다고 생각합니다. "가장자리 겹침"은 거의 항상 ** 평면성 **을 원하는 것을 의미하며 GraphViz는 평면성을 보장 할 설정이 없습니다. [이 항목에 대한 내 다른 답변] (https://stackoverflow.com/questions/45800371/graphviz-correct-embedding-of-planar-graphs) – TomServo

+0

고맙습니다. 정말 고맙습니다. 이제 평면 수학은 이산 수학을 배우는 중대한 부분이었습니다. 이제 graphviz가 자동으로이 문제를 해결하지 못하기 때문에 수동으로 설정할 수 있습니까? 아니면 OmniFraffle 및 Visio와 같은 다이어그램 응용 프로그램으로 업그레이드해야합니까? 감사! – jackxujh

+0

다른 패키지의 기능 집합에 대해 말할 수 없습니다. GraphV와 점에 대해서는 꽤 많이 알고 있지만 다른 것에 대해서는 언급 할 수 없습니다. 행운을 빌어 요! – TomServo

답변

0

이위한 실용적인 방법이 아니다. graphviz를가 해결하려면 아직 수없는 매우 어려운 일의

하나는 그래프 평면 있는지 확인하는 것입니다.

관련 문제