如何在Graphviz中绘制对角线边

如何在Graphviz中绘制对角线边,graph,graphviz,dot,Graph,Graphviz,Dot,如何在Graphviz(点语言)中的两个节点之间绘制对角线 我想画下面的形状 我试过: graph G { V[pos="0,0"]; N[pos="40,40!"]; V -- N [label="NSUBJ"] } 但它画的是正交线。此外,我想画多个子图的顺序号如上所述 可以使用pos属性,但在这种情况下,您必须使用neato并为每个节点设置pos: graph G { V [pos = "0,100"] N [pos = "50,0"] S [pos =

如何在Graphviz(点语言)中的两个节点之间绘制对角线

我想画下面的形状

我试过:

graph G {
V[pos="0,0"];
N[pos="40,40!"];
V -- N [label="NSUBJ"]   
}

但它画的是正交线。此外,我想画多个子图的顺序号如上所述

可以使用
pos
属性,但在这种情况下,您必须使用
neato
并为每个节点设置
pos

graph G {
    V [pos = "0,100"]
    N [pos = "50,0"]

    S [pos = "200,100"]
    VPC [pos = "150,0"]
    NPC [pos = "250,0"]

    V -- N [label="NSUBJ"]

    S -- VPC
    S -- NPC
}
然后使用以下命令:

neato -n -Tpng -o test.png test.gv
输出如下:

neato -n -Tpng -o test.png test.gv

如果使用不可见节点,也可以使直线呈对角线:

graph G {

    node [shape=plaintext]
    labelloc="b"
    pencolor=transparent

    subgraph cluster_1 {
        label="(1)"

        S_1 [label="S"]
        VPC_1 [label="VPC"]
        NPC_1 [label="NPC"]

        V_1 [label="V"]
        invis_1 [style=invis]
        N_1 [label="N"]

        V_1 -- invis_1 [style=invis]
        V_1 -- N_1 [label="NSUBJ"]

        S_1 -- VPC_1
        S_1 -- NPC_1
    }

    subgraph cluster_2 {
        label="(2)"

        VPC_2 [label="VPC"]
        V_2_2 [label="V"]
        NPC_2 [label="NPC"]

        V_2 [label="V"]
        invis_2 [style=invis]
        N_2 [label="N"]

        V_2 -- invis_2 [style=invis]
        V_2 -- N_2 [label="COPCOMP"]

        VPC_2 -- V_2_2
        VPC_2 -- NPC_2
    }
}
运行此命令序列会产生以下输出:

ccomps-Cx test.gv | dot | gvpack-array|u 1 | neato-n2-Tpng>test.png