如何在Graphviz中添加边标签?

223

我正在尝试使用Graphviz绘制图形,但我需要在边缘上添加标签。在Graphviz中似乎没有任何方法可以实现这一点。

是否有其他方法可行?

4个回答

301

您使用附加到边缘的标签属性

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

上述代码将生成一个类似于以下的图表。

alt text


48
标签为什么会贴在边缘?难道不应该留有间隔吗? - AndreKR
13
一个快速的修复方法是在标签的开头加上一个空格:a -> b [ label=" a to b" ]; - chembrad
8
另一种解决方法是使用rankdir="LR";,这将生成一个水平图形,标签会被放置在边的上方而不会触碰到边。 - Dave Jarvis
8
有没有一种方法可以将标签垂直旋转,使其与线条平行? - Justin L.
7
将来参考,DOT语言文档在这里,属性文档在这里 - Jens
显示剩余6条评论

40

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

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

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

这将产生以下结果: 带有工具提示标签的示例


1
工具提示提示非常有用。谢谢。 - J Evans
你试过哪个版本?用的是dot版本 - graphviz版本2.43.0(0),工具提示没有显示出来。 - Yu Shen

26

通过谷歌搜索,我来到这里,想了解UML的组合/聚合关系箭头末端是否可以有标签。答案是肯定的:

"人" -> "手" [headlabel="*", taillabel="1"]

图片描述


10
你可以使用 label="\E",它将生成默认标签。 例如:
digraph G {
 a -> b [ label="\E" ];
 b -> c [ label="\E"];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接