graphviz: сделать узлы уникальными - PullRequest
0 голосов
/ 26 февраля 2019

Вот простой пример из Graphviz: сделать ребра, не влияющие на иерархию узлов .

digraph G {
    a -> b
    a -> c
    c -> d
    c -> e
    a -> f
    c -> f
    { rank=same; c f }
}

Ответ имеет b,c,f все в одном ранге, хотя он толькоуказано { rank=same; c f }

Мой вопрос: есть ли способ присвоить званию только c и f?

У меня проблемы с указанием {rank=same;989;988;952;953;950;951;}, но другие узлы отображаются в том же ранге.Какие-нибудь хитрости, чтобы сделать звание эксклюзивным, как?

1 Ответ

0 голосов
/ 26 февраля 2019

Я думаю, что невозможно сделать ранг исключительным, но вы можете исключить нежелательные узлы из ранга вручную.

Правило точки состоит в том, что при соединении двух узлов с ребром, головной узел обычно увеличиваетсяего ранг (если только на его положение не влияют другие ребра).

Итак, что вы можете сделать в своей ситуации: подключите нежелательный узел к одному из узлов в вашем «эксклюзивном» ранге и сделайте это ребро невидимым:

digraph G {
    a -> b
    a -> c
    c -> d
    c -> e
    a -> f
    c -> f
    { rank=same; c f }
    b -> c [style=invis]
}

Результат:

enter image description here

...