Убрать пересечение линии в Графвизе;макет отличается в jupyter и webgraphviz - PullRequest
0 голосов
/ 01 октября 2018

Я ищу способ удалить недопустимое пересечение линий в простом dot сценарии.При выполнении кода в http://www.webgraphviz.com/, пересечения строк не происходит, но при выполнении точно такого же кода в записной книжке Jupyter происходит пересечение строк.Я был бы благодарен за предложение о том, как убрать пересечение строк в Jupyter, то есть, чтобы макет в Jupyter выглядел как макет в webgraphviz.

Вот код dot:

Digraph X {
    rankdir=LR;
    {rank=same; a b}
    {rank=same; d c}
    z -> a
    a -> b
    b -> c
    c -> d
    d -> a   
}

В http://www.webgraphviz.com/, он отображается следующим образом:

enter image description here

Но в Jupyter он выглядит следующим образомс недопустимым пересечением линии:

enter image description here

Код Юпитера следующий:

import graphviz
graphviz.Source('''Digraph X {
rankdir=LR;
{rank=same; a b}
{rank=same; d c}
z -> a
a -> b
b -> c
c -> d
d -> a
}''')

1 Ответ

0 голосов
/ 02 октября 2018

Это заняло несколько проб и ошибок и сложило вместе ключи из https://graphviz.gitlab.io/_pages/doc/info/attrs.html

import graphviz
graphviz.Source('''Digraph X {
rankdir=RL;
{rank=sink; z}
{rank=same; c d}
{rank=same; a b}
z -> a
a -> b
b -> c [constraint=false]
c -> d [constraint=false]
d -> a
}''')

enter image description here

...