Graphviz:如何使用circo布局安排节点

Graphviz:如何使用circo布局安排节点,graphviz,Graphviz,我想画一个圆形拓扑图 以下是我希望看到的: 这是我的gv文件: digraph g1 { layout="circo"; node [shape = doublecircle]; N4 N6; node [shape = circle]; N0 -> N1 [ label = "{1,0}"]; N1 -> N2 [ label = "{1,0}"]; N2 -> N3 [ label = "{1,0}"]; N3 -&

我想画一个圆形拓扑图

以下是我希望看到的:

这是我的gv文件:

digraph g1 {
    layout="circo";
    node [shape = doublecircle]; N4 N6;
    node [shape = circle];
    N0 -> N1 [ label = "{1,0}"];
    N1 -> N2 [ label = "{1,0}"];
    N2 -> N3 [ label = "{1,0}"];
    N3 -> N4 [ label = "{1,0}"];
    N4 -> N5 [ label = "{1,0}"];
    N5 -> N6 [ label = "{1,0}"];
    N6 -> N0 [ label = "{1,0}"];

    N0 -> N4 [ label = "{1,0}"];
    N1 -> N5 [ label = "{1,0}"];
    N2 -> N6 [ label = "{1,0}"];
    N3 -> N0 [ label = "{1,0}"];
    N4 -> N1 [ label = "{1,0}"];
    N5 -> N2 [ label = "{1,0}"];
    N6 -> N3 [ label = "{1,0}"];    
}
这是上图的输出图像:


如何在graphviz中排列节点以使其看起来像?

如果目标是拥有一个尊重节点顺序的图形,那么就没有那么简单了。你可以

或者,您可以首先使用确定节点正确顺序的边布局节点:

digraph g1 {
    node [shape = doublecircle]; N4 N6;
    node [shape = circle];
    edge[label="{1,0}"];
    N0 -> N1 -> N2 -> N3 -> N4 -> N5 -> N6 -> N0;
}
与:

然后将剩余的边添加到
tempgraph.gv
-只需在关闭
}
之前复制粘贴以下内容即可:

N0 -> N4 [ label = "{1,0}"];
N1 -> N5 [ label = "{1,0}"];
N2 -> N6 [ label = "{1,0}"];
N3 -> N0 [ label = "{1,0}"];
N4 -> N1 [ label = "{1,0}"];
N5 -> N2 [ label = "{1,0}"];
N6 -> N3 [ label = "{1,0}"];
并使用
neato
-n
选项进行渲染:

neato -n tempgraph.gv -Tpng -O
您可能需要微调标签的位置:


谢谢
circo
命令是我想要的,但我只是尝试
dot
neato
现在我明白了为什么我不能得到一个圆形布局了!
neato -n tempgraph.gv -Tpng -O