【问题标题】:Strict graph which displays multiple edges differently以不同方式显示多条边的严格图
【发布时间】:2013-09-26 15:22:33
【问题描述】:

分组multiple edges together is possible by defining the graph as strict

来自the Graphviz documentation

如果图是严格的,那么图之间不允许有多个边 相同的节点对。

然而,我感兴趣的是我是否可以定义一些“行为”如何将它们组合在一起。例如,我有兴趣添加一个标签来显示已组合在一起的边数,或更改箭头的粗细。

是否可以直接使用 Graphviz 进行类似的操作?我想我可以自己做预处理,但我不想重新发明轮子。

【问题讨论】:

    标签: graphviz edges


    【解决方案1】:

    请注意,将边组合在一起实际上是通过以下方式定义的:

    concentrate="true";
    

    但是您的要求(添加标签或边缘/箭头的粗细)可以通过向边缘添加属性来轻松完成。例如:

    A -> B [penwidth="4.5"];
    

    向边缘添加标签使用相同的“[...]”格式:

    A -> B [label="8 edges have been combined"];
    

    有时您可能希望一条线从标签到边缘:

    A -> B [label="this is my edge" decorate="true"];
    

    箭头大小也是边缘的一个属性。虽然我没有尝试过这个,但文档说arrowsize 是“箭头的乘法比例因子”。我会试试这个:

    A -> B [arrowsize="2.0"];
    

    最后,请注意您可以组合属性。例如:

    A -> B [label="test" penwidth="5" decorate="true" arrowsize="4.1"];
    

    来源:http://www.graphviz.org/content/attrs

    【讨论】:

    • 是的......这很容易弄清楚,但它仍然涉及预处理。 :) 您可以更新您的答案以声明如果没有预处理(例如添加您列出的属性),这在 GraphViz 中是不可能的。这也是我最终最终做到的方式......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多