0
digraph G {
    graph [label = "TGH5 SDK\n\n\n", labelloc = t, labeljust = center,
           fontname = Helvetica, fontsize = 18]
    labeljust = center;
    ranksep = .5;
    node [shape = "box", style = rounded, fontsize = 12];
    edge [fontsize = 9];
    subgraph cluster_0 {
        label = "External Services";
        style = "dashed";
        Language -> Geodata [style = "invis"];
        Geodata -> Advertisement [style = "invis"];
    }
    subgraph cluster_1 {
        label = "SDK";
        style = "dashed";
        Adapter -> Api;
    }
    subgraph cluster_2 {
        label = "Vendors";
        style = "dashed";
        Philips -> Opera [style = "invis"];
        Opera -> More [style = "invis"];
    }

    Language -> Api [constraint = false];
    Advertisement -> Api [constraint = false];
    Geodata -> Api [constraint = false];
    Philips -> Adapter [constraint = false];
    Opera -> Adapter [constraint = false];
    More -> Adapter [constraint = false];

    Game -> Api [rank = max, dir = both, constraint = false];
}

我希望Game将节点放在其他三个框下方,但不知道该怎么做。抱歉,我对 Graphviz 很陌生——实际上这是我第一次尝试用它做点什么。所以我真的不知道在哪里看。

4

1 回答 1

2

附加的更改将为您提供所需的输出。问题是需要不可见的边将 Game 节点推到所有其他节点的下方。一般来说,强制布局包含比边缘优先可以描述的结构更多的内容实际上是相当困难的。

Api -> Game [dir = both];
{ Advertisement; More } -> Game [style = invis];
于 2013-09-23T13:03:11.837 回答