使用点时如何排序子图簇?

Jos*_*lls 5 dot graphviz

我有一个点文件,可在其中创建要按特定顺序显示的子图簇,假设我有以下内容:

digraph G {
    splines=true;
    sep="+25,25";
    overlap=scalexy;
    nodesep=0.6;
    subgraph cluster_2 {
        label="ADD_MORE_PROBLEMS";
        subgraph cluster_3 {
            label="pattern";
            N1 [label="problem"];
        }
        subgraph cluster_4 {
            label="replacement";
            N2 [label="problem"];
            N3 [label="problem"];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个创建:

点输出

如何确保“样式”出现在“替换”的左侧(我可以有任意数量的子图)。

Mic*_*Mol 4

集群是一种奇怪的情况,其中仅代码中的顺序就造成了大部分(如果不是全部)差异。如果我们只是像这样重新排序您的代码:

digraph G {
    splines=true;
    sep="+25,25";
    overlap=scalexy;
    nodesep=0.6;
    subgraph cluster_2 {
        label="ADD_MORE_PROBLEMS";
        subgraph cluster_4 {
            label="replacement";
            N2 [label="problem"];
            N3 [label="problem"];
        }
        subgraph cluster_3 {
            label="pattern";
            N1 [label="problem"];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这让一切变得不同。“ADD_MORE_PROBLEMS”簇包含“模式”簇和“替换”簇。 “模式”簇位于“替换”簇的左侧。 “模式”集群包含一个标记为“问题”的节点。 “替换”集群包含两个节点,都标记为“问题”。

现在,这可能会失败,在这种情况下,设置隐形边缘是更常见的解决方案之一。