如何在 Graphviz 中制作圆形图?

How can I make a circular graph in Graphviz?

我在 graphviz 中有以下图表:

由这段代码生成:

digraph finite_state_machine {
    rankdir=TB;
    node [shape = none]; Start;
    node [shape = circle];
    nodesep=.5;
    Start -> A;
    
    A->B
    B->C
    C->D
    D->E
    E->F
    F->G
    G->H
    H->I
    I->A

    {rank = same; A B C D}
    {rank = same; E}
    {rank = same; F G H I}
}

我怎样才能改变那些底线的方向,让它看起来像那样?

一个有 8 个节点的例子(从你的图中看不清楚第 9 个节点放在哪里):

digraph finite_state_machine {
    rankdir=TB;
    node [shape = none]; Start;
    node [shape = circle];
    nodesep=.5;
    Start -> A;
    
    A->B
    B->C
    C->D
    D->E
    F->E [dir=back]
    G->F [dir=back]
    H->G [dir=back]
    A->H [dir=back]
   

    {rank = same; A B C }
    {rank = same;  E F G }
}

作为替代方法,您可以为此图表使用与 dot 不同的布局引擎。

circo好像特别合适,结果是这样的:

当然,您可以尝试其他引擎(neato 也可以)。