【问题标题】:How to add edge labels in Graphviz?如何在 Graphviz 中添加边缘标签?
【发布时间】:2010-12-20 21:10:45
【问题描述】:

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

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    您使用附加到边缘的label property

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

    上面生成的图表看起来像这样。

    【讨论】:

    • 为什么标签会碰到边缘?不应该有差距吗?
    • @AndreKR 一个快速的解决方法是在标签的开头放一个空格:a -> b [ label=" a to b" ];
    • 另一个解决方法是使用rankdir="LR";,它会生成一个水平图形,其中标签放置在边缘上方而不接触。
    • 有没有办法让标签垂直旋转以平行于线?
    • DOT 语言文档为here,属性文档为here
    【解决方案2】:

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

    labeltooltipattribute 也值得关注。这允许将附加字符串附加到边缘的标签上。这对用户来说比tooltip 属性更容易,因为它可以很巧妙地直接悬停在边缘上。语法如下:

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

    结果如下:

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        例如:

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

        【讨论】:

          猜你喜欢
          • 2010-10-24
          • 2023-03-22
          • 1970-01-01
          • 2017-06-17
          • 2019-06-19
          • 2012-09-05
          • 2020-02-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多