如何在Graphviz中添加边缘标签?

use*_*855 157 dot graphviz

我试图使用Graphviz绘制图形,但我需要在边缘添加标签.在Graphviz中似乎没有任何方法.有出路吗?

And*_*ker 211

您使用附加到边缘的label属性.

digraph G {
 a -> b [ label="a to b" ];
 b -> c [ label="another label"];
}
Run Code Online (Sandbox Code Playgroud)

上面生成的图形看起来像这样.

替代文字

  • 为什么标签接触边缘?不应该有差距吗? (28认同)
  • @AndreKR快速解决方法是在标签的开头添加一个空格:a - > b [label ="a to b"]; (11认同)
  • 另一个解决方法是使用`rankdir ="LR";`,它生成一个水平图形,标签位于边缘上方而不会触及. (6认同)
  • 有没有办法让标签垂直旋转以与线条平行? (6认同)
  • 为了将来参考,DOT语言文档是[这里](http://www.graphviz.org/doc/info/lang.html),属性文档是[这里](http://www.graphviz.org/ DOC /信息/ attrs.html). (5认同)
  • 这很复杂地定义了这些定义.有没有办法做这样的事情:`a - "a到b"> b - "b到c"> c`? (2认同)
  • 关于接触边缘的标签......提到的解决方法似乎有点临时,并且还依赖于轴对齐的图形边缘。标签似乎经常触及复杂图形的边缘。没有通用的解决方案吗? (2认同)

All*_*owe 16

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

值得了解该labeltooltip 属性.这允许将附加字符串附加到边缘的标签上.对于用户而言tooltip,这比属性更容易,因为直接悬停在边缘上可能很繁琐.语法如下:

digraph G {
 a -> b [label="  a to b" labeltooltip="this is a tooltip"];
 b -> c [label="  another label" ];
}
Run Code Online (Sandbox Code Playgroud)

这给出了以下结果: 带有工具提示的标签示例


Fab*_* PH 13

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

"Person" -> "Hand" [headlabel="*", taillabel="1"]

在此处输入图片说明


小智 5

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

例如:

digraph G {
 a -> b [ label="\E" ];
 b -> c [ label="\E"];
}
Run Code Online (Sandbox Code Playgroud)