【问题标题】:Graphviz: edges between cells in the same html table are too longGraphviz:同一个html表格中单元格之间的边缘太长
【发布时间】:2022-02-06 01:08:05
【问题描述】:

我想在 graphviz 的同一个表节点中的单元格之间绘制边,但是边太长,可能会与其他节点重叠。如何让这些边更短?

这是一个例子。

digraph graphviz {
    graph [rankdir = "LR"];
    node [shape = "plaintext"];
    
    "A" [label=<
        <TABLE>
        <TR><TD PORT="a">cell a</TD></TR>
        <TR><TD PORT="b">cell b</TD></TR>
        <TR><TD PORT="c">cell c</TD></TR>
        </TABLE>
    >];
    
    "B" [label=<
        <TABLE>
        <TR><TD PORT="a">cell a</TD></TR>
        <TR><TD PORT="b">cell b</TD></TR>
        </TABLE>
    >];
    
    "A":"c" -> "A":"a";
    "A":"c" -> "A":"b";
    
    "B":"a" -> "A":"a";
}

我发现了一个类似的问题Loopy edge too long,但是没有答案。

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    这似乎会产生更小的边缘(更少的循环):
    dot -Tdot myfile.gv |neato -n -Tpng &gt;$myfile.png
    它使用 dot 定位节点并使用 neato 定位边缘。 请参阅:https://graphviz.org/faq/#FaqDotWithNodeCoordshttps://graphviz.org/docs/outputs/canon/
    之前:

    之后:

    【讨论】:

    • 在这种方法中,节点之间的边似乎变得更直,更不灵活。这些边可能会跨节点。我想知道我们是否可以通过修改源代码来解决这个问题?这是一个错误还是什么?
    猜你喜欢
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    相关资源
    最近更新 更多