【问题标题】:Non deterministic results in Graphviz (dot)Graphviz(点)中的非确定性结果
【发布时间】:2018-03-16 09:27:30
【问题描述】:

如何强制 graphviz 始终生成相同的布局?

给定一个图表:

digraph {
    subgraph clusterA {
        subgraph clusterB {
            "B.001"
            "B.002"
            "B.003"
            "B.004"
        }
        subgraph clusterC {
            "C.001"
            "C.002"
            "C.003"
        }
    }
    subgraph clusterD {
        subgraph clusterE {
            "E.001"
        }
        subgraph clusterF {
            "F.001"
            "F.002"
            "F.003"
        }
        subgraph clusterG {
            "G.001"
            "G.002"
        }
    }
    subgraph clusterH {
        "H.001"
    }
    "G.002" -> "F.003"
    "F.001" -> "C.003"
    "G.002" -> "F.002"
    "G.002" -> "D.001"
}

当我将它传递给dot 时,它有时会生成具有如下布局的结果:

有时像这样:

显然第一个看起来好多了,我希望 graphviz 坚持这个。

我试图通过fdpunflatten 传递我的图表,但它并没有改变任何东西。

【问题讨论】:

标签: graphviz dot


【解决方案1】:

我尝试了很多不同的在线渲染解决方案和 cli。我看不到另一个输出,然后是第二个输出。但是如果你更喜欢第一个,只需将ClusterB和ClusterC的顺序调换即可。

digraph {
rankdir=TB
subgraph clusterA {

    subgraph clusterC {
        "C.001"
        "C.002"
        "C.003"
    }

    subgraph clusterB {
        "B.001"
        "B.002"
        "B.003"
        "B.004"
    }

}

subgraph clusterD {
    subgraph clusterE {
        "E.001"
    }
    subgraph clusterF {
        "F.001"
        "F.002"
        "F.003"
    }
    subgraph clusterG {
        "G.001"
        "G.002"
    }
}

subgraph clusterH {
    "H.001"
}


"G.002" -> "F.003"
"F.001" -> "C.003"
"G.002" -> "F.002"
"G.002" -> "D.001"

}

【讨论】:

    猜你喜欢
    • 2013-02-07
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2018-02-13
    • 2016-05-14
    • 1970-01-01
    相关资源
    最近更新 更多