Graph 如何在点文件中指定边向上

Graph 如何在点文件中指定边向上,graph,graphviz,dot,Graph,Graphviz,Dot,我想渲染一个有向图,如: A ^ ^ / \ / \ B C 但不管我把这些陈述放在什么顺序上,dot都坚持生成一个看起来像: B C \ / \ / v v A 我已经尝试指定端口,但是边缘只是环绕。它不会改变节点的位置。解决方案是rankdir digraph G { rankdir="BT" B->A C->A } rankdir是从下至上构建整个图形的解决方案。更灵活的方法是只

我想渲染一个有向图,如:

    A
   ^ ^
  /   \
 /     \
B       C
但不管我把这些陈述放在什么顺序上,dot都坚持生成一个看起来像:

B       C
 \     /
  \   /
   v v
    A

我已经尝试指定端口,但是边缘只是环绕。它不会改变节点的位置。

解决方案是rankdir

digraph G {
 rankdir="BT"
 B->A
 C->A
}

rankdir
是从下至上构建整个图形的解决方案。更灵活的方法是只告诉边向后指:

digraph G
{
    A -> B[ dir = back ];
    A -> C[ dir = back ];
}
edge[ dir = back ];
屈服

你也可以写

A -> { B C }[ dir = back ];
或者,您可以给出在本说明之后定义的所有边的一般说明,以便向后指向:

digraph G
{
    A -> B[ dir = back ];
    A -> C[ dir = back ];
}
edge[ dir = back ];
这可以通过以下方式撤消:

edge[ dir = forw ];
因此,

digraph G
{
    edge[ dir = back ];
    A -> B;
    A -> C;
    edge[ dir = forw ];
    { B C } -> D;
}
屈服


还可以操纵arrowtype将输出与断言对齐。但如果你想让它尽可能干净,而不影响方向,兰迪应该是你的选择。