graphviz / dot graph: порядок узлов в кластере / подграфе - PullRequest
0 голосов
/ 09 февраля 2020

Помогите отсортировать узлы внутри подграфов или кластеров, таких как подграфы A и B. ниже.

graph {
    splines=line;
    subgraph cluster_0 {
        label="Subgraph A";
        a; b; c
    }

    subgraph cluster_1 {
        label="Subgraph B";
        d; e;
    }

    a -- e;
    a -- d;
    b -- d;
    b -- e;
    c -- d;
    c -- e;
}

Этот график нежелателен. Помогите нам отсортировать «a», «b», «c» и «d» и «e» слева направо, пожалуйста.

https://graphs.grevian.org/resources/static/images/example6a.png

1 Ответ

0 голосов
/ 12 февраля 2020

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

graph {
    splines=line;
    rankdir=LR

    subgraph cluster_0 {
        label="Subgraph A";
        rank=same
        a -- b -- c [style=invis]
    }

    subgraph cluster_1 {
        label="Subgraph B";
        rank=same
        d -- e  [style=invis]
    }

  edge[constraint=false]
    a -- e;
    a -- d;
    b -- d;
    b -- e;
    c -- d;
    c -- e;
}

производит это:

enter image description here

...