2010-03-14 5 views
1

graphviz가 B의 오른쪽에 C를 그리는 이유는 무엇입니까? 예 :graphviz가 B의 오른쪽에 C를 그리는 이유는 무엇입니까?

A 
B E 
C 

대신 표시하고 싶습니다.

digraph { 
    compound=true 
    subgraph cluster_1 { a -> b } 
    b -> c 
    {rank=same b -> e } 
} 

alt text http://grab.by/33m4

+0

하위 그래프와 관련이있는 것 같습니다. 만약 당신이 "digraph {a -> b; b -> c; {rank = same b -> e}}"라면 하위 그래프없이 원하는 순위를 얻습니다. –

답변

2

나는 당신이 찾고있는 것을 할 수 있는지 확신하지 못합니다.

도트가 주어진 그래프를 배치하면 순위 지정을 위해 cluster_1을 단일 엔티티로 처리합니다. 여러분이 원한다면 cluster_1의 순위는 0입니다. 그러면 {rank = same b, e}라고 말하기 때문에 e도 0이됩니다. 점이 c를 그릴 때 c는 더 높은 rank - rank 1을가집니다. e. 이 시점에서 x 축의 공간에 대해 걱정할 필요가 없으므로 e 바로 아래에 c를 그립니다. 당신이 노드 C는 확실히 다른 모든 아래 그려하려면

당신은 ... 당신이 목표로하는지만큼 좋은 보이지 않는

{ rank=sink c } 

을 추가 할 수 있습니다.

2

이 그림은 GraphVIZ 최소화하려고 무엇 그래프의 전체 면적을 증가시킬 것입니다 때문입니다. 왼손잡이 또는 neato와 같은 패키지에서 다른 레이아웃 유틸리티를 사용하여 더 나은 결과를 얻을 수 있는지 알아볼 수 있습니다.

관련 문제