在 Graphviz 中使用 neato 引擎对具有 singleton/unconnected 个节点的子图进行聚类

Clustering subgraphs with singleton/unconnected nodes using neato engine in Graphviz

我希望使用 Graphviz neato 引擎生成两个子图。一个子图将包含相互连接的节点,另一个子图将包含未连接到任何其他节点的单例节点。我已经从下面的 Graphviz 网站调整了 this 示例:

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

使用 dot 引擎处理可以得到不错的结果,但我需要生成具有大量节点的网络,neato 引擎更适合这种格式。

dot -Tpng test.dot > test_dot.png

我想要边框、标题和集群(如上面使用 dot 的示例所示),但使用 neato 引擎来定位节点。有没有办法在 Graphviz 中做到这一点?

在此先感谢您的帮助。

根据 this 线程中的讨论,这似乎可以通过 fdp 引擎实现。

以下命令生成令人满意的图形。

fdp -Tpng test.dot > test_dot.png