如何动态增加GraphViz中两个节点之间的距离?

如何动态增加GraphViz中两个节点之间的距离?,graphviz,Graphviz,我正在使用这个Python项目生成一个族谱。它与GraphViz一起工作,创建一个漂亮的点文件,然后创建一个PNG。“最低可行产品”检查。有效:D 现在我想把它做得更好一点 是否有一种简单的方法(例如不必增加每只手的边缘长度)强制最右边的垂直边缘(在父亲1-母亲2和弗兰兹之间)像下面显示的那样笔直/垂直? 谢谢 编辑:正如@albert在评论中正确指出的,webgraphviz.com显示正确的输出,而viz-js.com则不显示 PS:以下是生成此图的点代码: digraph { grap

我正在使用这个Python项目生成一个族谱。它与GraphViz一起工作,创建一个漂亮的点文件,然后创建一个PNG。“最低可行产品”检查。有效:D

现在我想把它做得更好一点

是否有一种简单的方法(例如不必增加每只手的边缘长度)强制最右边的垂直边缘(在父亲1-母亲2和弗兰兹之间)像下面显示的那样笔直/垂直?

谢谢

编辑:正如@albert在评论中正确指出的,webgraphviz.com显示正确的输出,而viz-js.com则不显示

PS:以下是生成此图的点代码:

digraph {
graph [splines=ortho];
node [shape=box, fontname = "calibri"];
edge [dir=none];

Father1[label="Father1",style=filled,fillcolor=azure2];
Mother1[label="Mother1",style=filled,fillcolor=bisque];
Child1[label="Child 1",style=filled,fillcolor=azure2];
Child2[label="Child 2",style=filled,fillcolor=bisque];
Child3[label="Child 3",style=filled,fillcolor=azure2];
Child4[label="Child 4",style=filled,fillcolor=azure2];
Mother2[label="Mother2",style=filled,fillcolor=bisque];
Franz[label="Franz",style=filled,fillcolor=azure2];

{ rank=same;
    Mother1 -> h0 -> Father1;
    h0[shape=circle,label="",height=0.01,width=0.01];
    Father1 -> h1 -> Mother2;
    h1[shape=circle,label="",height=0.01,width=0.01];
}
{ rank=same;
    h0_0 -> h0_1 -> h0_2 -> h0_3 -> h0_4;
    h0_0[shape=circle,label="",height=0.01,width=0.01];
    h0_1[shape=circle,label="",height=0.01,width=0.01];
    h0_2[shape=circle,label="",height=0.01,width=0.01];
    h0_3[shape=circle,label="",height=0.01,width=0.01];
    h0_4[shape=circle,label="",height=0.01,width=0.01];
    h0_4 -> h1_0 [style=invis];
    h1_0;
    h1_0[shape=circle,label="",height=0.01,width=0.01];
}
    h0 -> h0_2;
    h0_0 -> Child1;
    h0_1 -> Child2;
    h0_3 -> Child3;
    h0_4 -> Child4;
    h1 -> h1_0;
    h1_0 -> Franz;
{ rank=same;
    Child1 -> Child2 [style=invis];
    Child2 -> Child3 [style=invis];
    Child3 -> Child4 [style=invis];
    Child4 -> Franz [style=invis];
}
{ rank=same;
}
}

正如在评论中与@Albert讨论后所料,使用GraphViz的2.28版,我得到了我想要的结果


我在GraphViz的Gitlab上创建了一个问题报告:

我尝试了2.38.0和2.40.1,但都没有得到很好的结果,使用webgraphviz()我得到了很好的结果,但我不知道他们使用的是GraphViz的哪个版本。@albert:我也看到了这个。阿尔伯特:另一方面,它给出的输出和我目前得到的输出是一样的。它在viz js的package.json中说,它使用的是viz.js的“2.1.2”版本。我不熟悉viz js或它们的编号。