Я пытаюсь нарисовать график с круговой топологией.
Вот что я ожидаю увидеть: ![enter image description here]()
Вот мой файл 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}"];
}
И вот выходное изображение для графика выше: ![enter image description here]()
Как я могу упорядочить узлы в graphviz, чтобы он выглядел как 1?
Ответ 1
Если цель состоит в том, чтобы иметь график, который учитывает порядок узлов, это не так просто. Вы можете рассчитать положение узлов с внешним скриптом и визуализировать его с помощью neato.
Или вы можете сначала компоновать узлы с краями, которые определяют правильный порядок узлов:
digraph g1 {
node [shape = doublecircle]; N4 N6;
node [shape = circle];
edge[label="{1,0}"];
N0 -> N1 -> N2 -> N3 -> N4 -> N5 -> N6 -> N0;
}
с:
circo graph.gv > tempgraph.gv
Затем добавьте оставшиеся ребра в 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 layout]()