使用点记录节点 (Graphviz) 表示带有索引的数组
Represent array with indices using dot record nodes (Graphviz)
我正在使用 Graphviz 来表示数组,使用 subgraphs
和 record
节点:
subgraph cluster_array
{
label="my array"
Array [shape="record", label="A | B | C | D"]
Array
}
我想为每个数组元素添加外部索引,映射0 -> A
、1 -> B
等等。
我想获得类似于以下的结果:
我已经在线搜索并尝试使用 xlabel
,但找不到为每个记录元素正确添加标签的方法。我也试过使索引成为标签的一部分,并使用 lp
移动标签,但它似乎对 record
个节点没有影响。
是否可以使用 GraphViz 将外部元素标签添加到 record
节点?
不是您问题的真正答案(我认为应该是 "no"),而是一种可以满足您需求的解决方法。我使用了一个 "parallel" 记录节点,它没有边框(或者准确地说是纸色边框),位置非常接近并且由一条不可见的边缘连接:
digraph so
{
subgraph cluster0
{
rank = same{ Array notes }
color = white;
Array [ shape = record, label = "{ A | B | C | D }"] ;
notes [ shape = record, color = white, label = "{ a_1 | b_2 | c_3 | d_4 }" ];
Array -> notes[ style = invis ];
}
nodesep = .0;
X -> Array -> Z;
}
产生
我正在使用 Graphviz 来表示数组,使用 subgraphs
和 record
节点:
subgraph cluster_array
{
label="my array"
Array [shape="record", label="A | B | C | D"]
Array
}
我想为每个数组元素添加外部索引,映射0 -> A
、1 -> B
等等。
我想获得类似于以下的结果:
我已经在线搜索并尝试使用 xlabel
,但找不到为每个记录元素正确添加标签的方法。我也试过使索引成为标签的一部分,并使用 lp
移动标签,但它似乎对 record
个节点没有影响。
是否可以使用 GraphViz 将外部元素标签添加到 record
节点?
不是您问题的真正答案(我认为应该是 "no"),而是一种可以满足您需求的解决方法。我使用了一个 "parallel" 记录节点,它没有边框(或者准确地说是纸色边框),位置非常接近并且由一条不可见的边缘连接:
digraph so
{
subgraph cluster0
{
rank = same{ Array notes }
color = white;
Array [ shape = record, label = "{ A | B | C | D }"] ;
notes [ shape = record, color = white, label = "{ a_1 | b_2 | c_3 | d_4 }" ];
Array -> notes[ style = invis ];
}
nodesep = .0;
X -> Array -> Z;
}
产生