如何reference/name形状的特定部分?

How to reference/name specific part of a shape?

我想引用形状的特定部分。例如:从 Best Apple 到篮子 1,而不是 apple_node 到篮子 1。 下图将更好地解释我希望实现的目标。

https://imgur.com/a/B0TEoWO

这是我的 graphviz 代码以及我目前取得的成果:

digraph fruits {

    node [shape=record]


    apple_node [label="Apple | {{Best Apple} | {Worst Apple}}"];
    banana_node [label="Banana | {{Best Banana} | {Worst Banana}}"];

    basket1_node [label="basket1|{Colour 10 | Seeds 10}"];
    basket2_node [label="basket2|{Colour 10 | Seeds 10}"];

    apple_node -> basket1_node;
    banana_node -> basket2_node;

}

由于您使用的是record-based节点,您可以将字段id添加到标签中并将它们用作portnames 指示附加边的位置(另请参阅 official documentation about record-based nodes)。

示例:

examplenode [shape=record; label="<fieldid1> one|<fieldid2> two"];
examplenode:fieldid1 -> othernode;

您的 apple-banana 示例:

digraph fruits {
    node [shape=record]

    apple_node [label="Apple | {{<bestapple>Best Apple} | {<worstapple>Worst Apple}}"];
    banana_node [label="Banana | {{Best Banana} | {<worstbanana>Worst Banana}}"];

    basket1_node [label="basket1|{Colour 10 | Seeds 10}"];
    basket2_node [label="basket2|{Colour 10 | Seeds 10}"];

    apple_node:bestapple -> basket1_node;
    apple_node:worstapple -> basket1_node;
    banana_node:worstbanana -> basket2_node;
}