2011-03-24 65 views
13

我正在试图绘制一个非常简单的点图。更改点的边缘方向

digraph untitled 
    { 
    rankdir = LR; 
    {rank=same; S; A} 
    B -> A; 
    B -> S; 
    A -> A; 
    S -> S; 
    A -> S ; 
    S -> A; 
    A -> T; 
    S -> T; 
} 

我得到的结果是

enter image description here

我真的从S -> S改变的边缘,但我也想改变箭头的方向,使它们环从左至右。

回答

35

要更改任何箭头的方向,你可以简单地使用dir=back

S -> S [dir=back]; 

但在你的情况下,这似乎没有必要......(见下文)

由于边缘S -> SA -> SS -> A边缘之间的重叠的话,建议使用S和A之间只有一个边缘带箭头上两端:

digraph g { 
    rankdir = LR; 
    {rank=same; S; A} 
    B -> A -> T; 
    B -> S -> T; 
    A -> A; 
    S -> S; 
    A -> S[dir=both]; 
} 

graphviz output

0

我不知道是否有可能使箭头从左至右循环。您可以通过使用dir选项的行使一定程度上的箭头控制,如

S->S[dir=both]; 

此外,还可以通过改变从S链路的长度S.您还可以控制方向影响布局的(非自参照)通过反转顺序的节点的箭头被列出例如:

S->T; 
becomes 
T->S; 

我已经发现,它几乎总是产生更好的图表中,它较少被约束。我会建议尝试删除rank = same命令。