Кластеризация подграфов с одноэлементными / несвязанными узлами с использованием движка neato в Graphviz - PullRequest
0 голосов
/ 07 июня 2018

Я надеюсь создать два подграфа с движком Graphviz neato.Один подграф будет содержать узлы, которые связаны друг с другом, другой будет содержать одноэлементные узлы, которые не связаны ни с какими другими узлами.Я настроил этот пример с веб-сайта Graphviz ниже:

digraph G {
    node [shape = circle];
    edge [arrowhead = normal, label="", color="#919191"];

    subgraph cluster_0 {
        color=lightgrey;
        label="Singletons";
        a0;
        a1;
        a2;
        a3;
    }

    subgraph cluster_1 {
        color=lightgrey;
        label="Non-singletons";
        b0 -> b1;
        b2 -> b3;
    }
}

, который дает следующий график при обработке с помощью механизма neato, где узлы в каждом подграфе не группируются вместе,

neato -Tpng test.dot > test_neato.png

enter image description here

Обработка с помощью механизма dot дает хорошие результаты, но мне нужно генерировать сети с большим количеством узлов и neato двигатель больше подходит в этом формате.

dot -Tpng test.dot > test_dot.png

enter image description here

Мне бы хотелось, чтобы границы, заголовки и кластеризация (как показано в примере с использованием dot выше), но с использованием neato двигатель для позиционирования узлов.Есть ли способ сделать это в Graphviz?

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 11 июня 2018

Это представляется возможным с fdp движком в соответствии с обсуждением в этой ветке .

Следующая команда дает удовлетворительную цифру.

fdp -Tpng test.dot > test_dot.png

enter image description here

...