formidable
我是初学者(点语言和graphviz)。我写了这样的代码。但是我希望水平线上的d1 d2 d3 d4方框。请帮帮我
。
我如何让这些盒子水平。我能为此做些什么?如何将这些节点设置为水平?提前谢谢。
答案 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"
}