我试图使用Graphviz绘制图形,但我需要在边缘添加标签。在Graphviz中似乎没有任何方法可以做到这一点。 有出路吗?


使用附加到边缘的label属性。

digraph G {
 a -> b [ label="a to b" ];
 b -> c [ label="another label"];
}

上面生成了一个像这样的图。


@Andrew Walker给出了一个很棒的答案!

还有一点值得注意的是labeltooltip属性。这允许将额外的字符串附加到边的标签上。对于用户来说,这比tooltip属性更容易,因为直接悬停在边缘上可能比较麻烦。语法如下:

digraph G {
 a -> b [label="  a to b" labeltooltip="this is a tooltip"];
 b -> c [label="  another label" ];
}

得到如下结果:


你可以使用label="\E"它将生成一个默认标签。

例如:

digraph G {
 a -> b [ label="\E" ];
 b -> c [ label="\E"];
}

通过谷歌是否标签可以在箭头的末端找到这里,用于UML的组合/聚合。答案是肯定的:

“人” -> “手” [头标签=“*”, 尾标=“1”]