Tree 用于家谱树的Graphviz点边缘端口
我非常接近能够生成一个看起来并不可怕的家谱,但我遇到了以下问题Tree 用于家谱树的Graphviz点边缘端口,tree,graphviz,dot,graph-visualization,Tree,Graphviz,Dot,Graph Visualization,我非常接近能够生成一个看起来并不可怕的家谱,但我遇到了以下问题 //file: tree.dot digraph { edge [dir=none]; node [ fillcolor="black",fixedsize=true,shape=box, style="rounded,filled",width=2.0 ]; splines=ortho; // GEN -01 { rank=same;
//file: tree.dot
digraph {
edge [dir=none];
node [
fillcolor="black",fixedsize=true,shape=box,
style="rounded,filled",width=2.0
];
splines=ortho;
// GEN -01
{
rank=same; rankdir=LR;
"Grandfather" [regular=0];
m0002 [
label="",shape=diamond,regular=0,height=0.25,
width=0.25,style="filled",
];
"Grandmother" [regular=0];
{
rank=same; rankdir=LR;
"Grandfather" -> m0002 -> "Grandmother";
}
}
m0002 -> c0001;
// GEN 00
{
rank=same; rankdir=LR;
c0000 [
label="",shape=circle, regular=0, height=0.05,
width=0.05,style="filled"
];
c0001 [
label="",shape=circle, regular=0, height=0.05,
width=0.05,style="filled"
];
c0002 [
label="",shape=circle, regular=0, height=0.05,
width=0.05, style="filled"
];
{
rank=same; rankdir=LR;
c0000 -> c0001 -> c0002;
}
}
{
rank=same; rankdir=LR;
"Son 1" [regular=0];
"Daughter 1" [regular=0];
"Son 2" [regular=0];
m0000 [
label="",shape=diamond,regular=0,height=0.25,
width=0.25,style="filled"
];
"Other Daughter 1" [regular=0];
"Other Son 1" [regular=0];
"Other Other Son 1" [regular=0];
m0001 [
label="",shape=diamond,regular=0,height=0.25,
width=0.25, style="filled"
];
"Other Daughter 2" [regular=0];
{
rank=same; rankdir=LR;
"Son 2" -> m0000 -> "Other Daughter 1";
"Other Other Son 1" -> m0001 -> "Other Daughter 2";
}
}
c0000 -> "Son 1";
c0001 -> "Daughter 1";
c0002 -> "Son 2";
}
上面的代码生成了一个函数,它的子1和子2的边看起来很奇怪。我用dot-Tpng tree.dot运行它。当我运行相同的代码时,我会得到
我做错什么了吗?如何在不使用web界面的情况下获得预期的输出(我可能有数百个节点)?换句话说,如何使c0000和c0002分别与Son 1和Son 2的中心对齐,以便它们的边连接到节点的中心顶部
提前感谢您的帮助 您可以使用使用指南针方向、n、s、e、w、nw、ne、sw、se的端口指定边缘连接的位置
更改点文件末尾的以下行以包括端口
c0000 -> "Son 1" [headport=ne];
c0002 -> "Son 2":nw; // Shorthand for [headport=nw]
结果显示在该图像中
这不会使边缘处于死点,将端口位置更改为n
也不起作用。但它不再像原来那样有指向空角的边。GraphViz的一部分功能是自动布局,但有时它似乎会覆盖用户的决定(或者是一个bug)。可能重复@greedyfoddha,我以前尝试过这两种方法;两个都不行。是的,我也试过了;它更好,但仍然不完美。我也尝试过使用样条曲线的不同参数,但没有成功。