graphviz(点语言)我可以在水平线上获得节点吗?

时间:2017-08-07 13:28:14

标签: graphviz dot

formidable

我是初学者(点语言和graphviz)。我写了这样的代码。但是我希望水平线上的d1 d2 d3 d4方框。请帮帮我

image.dot

我如何让这些盒子水平。我能为此做些什么?如何将这些节点设置为水平?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这样的东西?我创建了不可见的链接来强制执行从左到右的排序。结合您的rankdir设置,这会让它们从左到右。

digraph G{
    rankdir=LR;
    size="12.34";
    node [shape="rectangle"]
compound=true;


    subgraph cluster_0 {
             rankdir=LR;
             node[style = filled];
             color = blue


    subgraph cluster_4{
             rankdir=LR;
             node[style=filled];
             fontsize=15;
             l[fontcolor=red] e[fontcolor=red] i[fontcolor=red] 
             g[fontcolor=red] k[fontcolor=red]
             color=orange

    l -> e -> i -> g -> k [style=invis];

             }



     subgraph cluster_3 {
             rankdir=LR;
             node [style=filled];
             fontsize=15
             "wq"[fontcolor=red,fontsize=12] ". . . . " "wqnn"
             [fontcolor=red,fontsize=12];
             label = "zebra";
             color=orange


    dummy3 [label = "" style=invis]
    dummy4 [label = "" style=invis]
    wqnn -> dummy3 -> dummy4 [style=invis]
    wq -> ". . . . " -> "wqnn" [style=invis];
             }


     subgraph cluster_2 {
             rankdir=LR;
             node [style=filled];
             fontsize=15
             struct3 [shape=record,fontsize=12, fontcolor=red, label="
             {{d1}|{ a | b | c }}"];
             struct4 [shape=record,fontsize=12, fontcolor=red, label="
             {{d2}|{ a | b | c }}"];
             struct5 [shape=record,fontsize=12, fontcolor=red, label="
             {{d3}|{ a | b }}"];
             struct6 [shape=record,fontsize=12, fontcolor=red, label="
             {{d4}|{ a }}"];

     struct3 -> struct4 -> struct5 -> struct6 -> struct7 [style=invis];

             struct7 [shape=record,fontsize=12, fontcolor=red, label="
             {{dn}|{a }}"];
             label = "tiger";
             color=orange
            }

   subgraph cluster_1{
            node[ style = filled];
            struct1 [shape=record, 
            rankdir=LR,fontsize=12,fontcolor=red, label="{{n}|{ x| y| 
            z }}"];
            ". . . . .  ."
            struct2 [shape=record, 
            rankdir=LR,fontsize=12,fontcolor=red, label="{{m}|{ x | y 
            | z }}"];
            label = "lion";
            fontsize=15
            color = orange

    dummy1 [label = "" style=invis]
    dummy2 [label = "" style=invis]
    struct2 -> dummy1 -> dummy2 [style=invis]
    struct1 -> ". . . . .  ." -> struct2  [stle=invis];
            }


           edge[color="violet"]
           "cat" -> "wq" [lhead=cluster_3 ]
           "cat" -> "struct3" [lhead=cluster_2 ]
           "cat" -> "struct1" [lhead=cluster_1 ]
           "cat" -> "l" [lhead=cluster_4  ]

        }

      "ball" -> "cat"[label="abc"];
       apple -> "ball"

}

enter image description here