Graphviz Дерево решений отображается отдельно для одних и тех же элементов - PullRequest
0 голосов
/ 02 января 2019

У меня есть коды здесь,

import graphviz as gv
d=gv.Digraph()
d.edge('a','b')
d.edge('a','c')
d.edge('b','c')

вывод такой, как рис:

enter image description here

Как мне получить такой график:

enter image description here

1 Ответ

0 голосов
/ 02 января 2019

Я не использую Python, у меня есть только чистый ответ graphviz, но вы сможете легко перевести его на Python.

Вам нужно сделать две вещи:

  • Создайте четыре узла, а не три, и присвойте им нужную метку
  • Поместите узлы, которые вы хотите иметь на одном уровне, в инструкцию rank = same (необязательно в контексте примера, но может потребоваться для более сложных графов)

Вот и мы:

digraph so 
{
    n_1[ label = "a" ];
    n_2[ label = "b" ];
    n_3[ label = "c" ];
    n_4[ label = "c" ];

    { rank = same; n_2 n_3 }

    n_1 -> { n_2 n_3 };
    n_2 -> n_4;
}

что дает вам

enter image description here

...