【问题标题】:Subgraph layout in graphvizgraphviz中的子图布局
【发布时间】:2012-09-09 22:07:47
【问题描述】:

我有显示两个子图的代码:

graph {
    rankdir=LR;
    subgraph cluster01 {
        label="t=0"
        a0 [label="A"];
        a1 [label="B"];
        a2 [label="C"];
        a5 [label="E"];
        a0 -- a1;
        a1 -- a2 ;
        a2 -- a0;
    };

    subgraph cluster02
    {
        label="t=10"
        b0 [label="A"];
        b5 [label="E"];
        b1 [label="B"];
        b2 [label="C"];

        b0 -- b1;
        b2 -- b5;
    };

    a0--b0 [style=dotted];
    a1--b1 [style=dotted];
    a2--b2 [style=dotted];
    a5--b5 [style=dotted];
}

这段代码显示两个像这样的子图:

但我想要这样:

我希望有人能帮我修复“rankdir”以完成它。

【问题讨论】:

    标签: graphviz rank subgraph


    【解决方案1】:

    以下是通过在某些边缘上使用不可见边缘constraint=false实现的:

    graph {
        rankdir=LR;
        subgraph cluster01 {
            label="t=0";
            a0 [label="A"];
            a1 [label="B"];
            a2 [label="C"];
            a5 [label="E"];
            a0 -- a1;
            a1 -- a2;
            a2 -- a5 [style=invis];
            a2 -- a0 [constraint=false];
        };
    
        subgraph cluster02
        {
            label="t=10"
            b0 [label="A"];
            b5 [label="E"];
            b1 [label="B"];
            b2 [label="C"];
    
            b0 -- b1;
            b1 -- b2 [style=invis];
            b2 -- b5;
        };
    
        edge[constraint=false];
        a0--b0 [style=dotted];
        a1--b1 [style=dotted];
        a2--b2 [style=dotted];
        a5--b5 [style=dotted];
    }
    

    【讨论】:

    • 谢谢你。这就是我一直在寻找的。​​span>
    • 肯定没有办法设置子图的位置吗? (彼此上方或下方?)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2018-08-09
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多