2016-10-26 15 views
6

순위 서브 그래프를 만들려고. e을 다른 모든 노드 아래에두기를 원합니다.내가이 사용 graphviz를 같은 것을 만들려고 한은 GraphVIZ

digraph x 
{ 
    rankdir = tb; 
    size = "7.5, 7.5"; 
    rank = source; 
    a -> b -> c -> d -> e; 
    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

First attempt

나는 작품의 clusterrank = global 어떤 종류를 사용하려했지만, 다음 서브 그래프는 더 분명 컬럼으로 분리 컬럼을 통해 중복있다되지 않습니다. 그것은 내가 원하는 것처럼 오른쪽으로도 가지 않습니다. 다음 이미지는 빨간색으로 중복 중 하나 강조하지만, 당신이 볼 수있는 내가 보장 가기를해야 할 것입니다 별도의 클러스터를 만들기 위해 노력했습니다 4

2nd attempt

digraph x 
{ 
    rankdir = tb; 
    rankstep=equally; 
    clusterrank = global; 
    size = "7.5, 7.5"; 
    a -> b -> c -> d -> e; 
    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

있다 아래쪽 순위를 매긴 다음 해당 클러스터의 순위를 매기지만 이전 시도와 동일하게 첫 번째 시도에서 보인 상자를 제거하고 원하지 않는 겹침을 유발합니다. 시도하고 내가 원하는 레이아웃을 얻을로

digraph x 
{ 
    rankdir = tb; 
    1 -> 2 -> 3 -> 4 -> 5; 
    a -> b -> c -> d -> e; 
    { rank=same; 1; a; } 
    { rank=same; 2; b; } 
    { rank=same; 3; c; } 
    { rank=same; 4; d; } 
    { rank=same; 5; e; } 

    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

3rd attempt

누구나 어떤 아이디어가?

부수적으로이 문제와 관련하여 Graphviz 포럼에 로그인하려고했지만 this page에서 로그인하는 것이 효과가없는 것으로 나타났습니다. 긴 시간 제한 문제가 계속 발생합니다. 나는 내 이메일 계정을 확인하고 아무것도 없다. 같은 이메일을 사용하여 새 계정을 만들려고하는데 계정이 이미 사용 중이라고합니다. 그런 다음 암호를 재설정하도록 설정하면 다른 시간 초과 문제가 발생합니다.

로그인 문제를 해결하기 위해 연락 할 수있는 사람이 누구인지 알고 있습니까? 이미 로그인 한 사람이 나를 위해 게시 할 수 있습니까?

답변

0

도트를 -Gnewrank로 실행하십시오. 그러면 스케치에 따라 원하는 것을 얻을 수 있습니다. 더 많은 비틀기가 필요한 경우, 후속 작업을 지정하십시오.

0

귀하의 마지막 해결책은 별도의 노드로 레이블을 정의 화살표

을 조정 splines=...와 "개봉기"클러스터의

재생을 방지하기 위해 즉시 미성년자 조정

사용 newrank=true을하는 것처럼 작동합니다.

digraph x 
{ 
    rankdir = tb; 
    newrank=true; 
    splines=ortho; 

    0 -> 1 -> 2 -> 3 -> 4 -> 5; 
    X; Y; Z; 
    a -> b -> c -> d -> e; 
    { rank=same; 0 X Y Z} 
    { rank=same; 1; a; } 
    { rank=same; 2; b; } 
    { rank=same; 3; c; } 
    { rank=same; 4; d; } 
    { rank=same; 5; e; } 

    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    c; 
    } 
} 

enter image description here