有没有一种方法可以在graphviz中将箭头从标记/单词添加到另一个?

时间:2019-07-21 05:44:33

标签: graphviz

我想知道是否可以创建像usint graphviz这样的东西,其中箭头从令牌/单词指向另一个,而不是节点。

1 个答案:

答案 0 :(得分:1)

可以用表来模拟(很多事情),尽管在源代码中通常非常难看:

digraph  {
    node [shape=plain]
    node1 [
        label=<
            <table cellspacing="0" bgcolor="#d0e2f2" cellborder="0">
                <tr><td></td></tr>
                <tr><td port="label">foo bar</td></tr>
                <tr><td></td></tr>
            </table>>
    ]
     node2 [
        label=<
            <table cellspacing="0" bgcolor="#d0e2f2" cellborder="0">
                <tr><td></td></tr>
                <tr><td port="label">baz qux</td></tr>
                <tr><td></td></tr>
            </table>>
    ]

    node1:label:n -> node2:label:n [constraint=false]
}

结果:


我在这里做什么:

  1. 我使用了普通节点形状和HTML-like label语法来创建表:
node [shape=plain]
node1 [
    label=<>
]
  1. 我为表添加了3行,第一行和最后一行为空:
<tr><td></td></tr>
<tr><td port="label">foo bar</td></tr>
<tr><td></td></tr>
  1. 中间行包含实际标签。另外,为了能够将边缘指向特定的单元格,我向其添加了一个端口:<td port="label">foo bar</td>

  2. 最后,在定义边缘时,我已经指定了要连接的端口(documentation on ports):

node1:label:n -> node2:label:n
相关问题