【问题标题】:Graphviz: Place edge label on the other sideGraphviz:将边缘标签放在另一侧
【发布时间】:2013-09-09 21:03:12
【问题描述】:

这可能与How to place edge labels ON edge in graphviz 相关:我有下图,我使用命令dot -Teps g.dot > g.eps 将其可视化:

graph triple {
    node [shape=box]; User; Object; Tag;
    node [shape=diamond,style=filled]; Triple;
    {
        User -- Triple [label = "1"];
        Object -- Triple [label = "1"];
    }
    {
        rank=same;
        User;
        Object;
    }
    Triple -- Tag [label="n"];
}

我希望通过将 User 和 Triple 之间的标签放在图表左侧,结果更加对称。

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    graphviz 无法手动放置边缘标签。

    但是,您可以使用 headlabel、labeldistance 和 labelangle 属性:

    graph triple {
    node [shape=box]; User; Object; Tag;
    node [shape=diamond,style=filled]; Triple;
        {
            User   -- Triple [headlabel = "1", labeldistance=2.5, labelangle=20];
            Object -- Triple [headlabel = "1", labeldistance=2.5, labelangle=-20];
        }
        {
            rank=same;
            User;
            Object;
        }
        Triple -- Tag [label="n"];
    }
    

    输出:

    【讨论】:

    • 为什么在上面的例子中需要“排名相同”?
    【解决方案2】:

    这是使用splines=false 和双边的第二个解决方法:

    graph {
    splines=false;
    node [shape=box]; User; Object; Tag;
    node [shape=diamond,style=filled]; Triple;
        {
            User   -- Triple [label = "1"];
            User   -- Triple [label = ""];
            Object -- Triple [label = ""];
            Object -- Triple [label = "1"];
        }
        {
            rank=same;
            User;
            Object;
        }
        Triple -- Tag [label="n"];
    }
    

    输出:

    【讨论】:

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