2015-03-19 4 views
0

В следующем коде:изменение порядка узлов в подгруппе в GraphViz

digraph G { 
    splines=true; 

    bpx_launch -> bpx_preproc [color=red]; 

    subgraph cluster_0 { 
    slice01; 
    slice02; 
    slice03; 
    slice_i; 
    slice_N; 
    color=black; 
    } 

    bpx_launch -> bpx_postproc [color=red]; 
    bpx_launch -> bpx_validate [color=red]; 
    bpx_launch -> slice01 [color=red]; 
    bpx_launch -> slice02 [color=red]; 
    bpx_launch -> slice03 [color=red]; 
    bpx_launch -> slice_i [color=red]; 
    bpx_launch -> slice_N [color=red]; 

    bpx_preproc -> slice01 [color=blue]; 
    bpx_preproc -> slice02 [color=blue]; 
    bpx_preproc -> slice03 [color=blue]; 
    bpx_preproc -> slice_i [color=blue]; 
    bpx_preproc -> slice_N [color=blue]; 

    slice01 -> bpx_postproc [color=blue]; 
    slice02 -> bpx_postproc [color=blue]; 
    slice03 -> bpx_postproc [color=blue]; 
    slice_i -> bpx_postproc [color=blue]; 
    slice_N -> bpx_postproc [color=blue]; 

    bpx_postproc -> bpx_validate [color=blue]; 
} 

Я в конечном итоге получить slice_N, slice01, slice02, slice03, slice_i, но я бы предпочел slice01, slice02, slice03, slice_i, slice_N. Есть ли способ изменить этот порядок?

Также, как добавить ключ для стрелок? Я хотел бы показать небольшую легенду, в которой объясняется, что «x -> y» означает «x запускает y» для красного цвета и «x должен работать до y» для синего.

EDIT: Ошибочно был первый «bpx_launch» как «BPX», так что не имеет смысла - все это должно читаться как «bpx_launch» - не должно быть ни один узел с именем «ВРХ»

ответ

0

В настоящее время (версия 2.38) порядок, отличный от rankdir, не работает в кластерах ни по порядку появления, ни по краям.

без кластеров

digraph G { 
    splines=true; 

    legend [shape=plaintext label=<<table border="0" cellborder="0"><tr><td><font color="red">- launches</font></td></tr><tr><td><font color="blue">- runs before</font></td></tr></table>> ] 

    { rank=same color=black 
     slice01 -> slice02 -> slice03 -> slice_i -> slice_N [style=invis] 
    } 

    edge [color=red] 
    bpx_launch -> bpx_preproc; 
    bpx_launch -> bpx_postproc; 
    bpx_launch -> bpx_validate; 
    bpx_launch -> slice01; 
    bpx_launch -> slice02; 
    bpx_launch -> slice03; 
    bpx_launch -> slice_i; 
    bpx_launch -> slice_N; 

    edge [color=blue] 
    bpx_preproc -> slice01; 
    bpx_preproc -> slice02; 
    bpx_preproc -> slice03; 
    bpx_preproc -> slice_i; 
    bpx_preproc -> slice_N; 
    slice01 -> bpx_postproc; 
    slice02 -> bpx_postproc; 
    slice03 -> bpx_postproc; 
    slice_i -> bpx_postproc; 
    slice_N -> bpx_postproc; 
    bpx_postproc -> bpx_validate; 
} 

вы получаете

enter image description here

Смежные вопросы