我正在尝试以编程方式构建家谱。我不在乎输入数据的格式,因为文本很容易解析(我是 NLP 研究人员),但是我在弄清楚如何构建(显示)树时遇到了麻烦。以下是我的问题:
有许多库可以生成 DAG,但这些可视化不是静态的,而且它们通常看起来并不令人愉快。一些例子:
总之,我需要一个框架来:
我知道我将无法找到可以完成所有三个任务的东西(我已经花了两周的时间进行搜索),但是我希望找到可以完成后者的东西,或者至少可以帮助开发一种算法来做到这一点。在这一点上,我不在乎是否需要学习一门全新的语言才能做到这一点。我要求很多,但是您可以发送给我的任何资源、图书馆或建议都会有很大帮助。
免责声明我不是在寻找以下任何一项:
我只是在寻找进行分层布局的算法。谢谢!
algorithm tree data-visualization family-tree directed-acyclic-graphs
我非常接近能够生成一个看起来并不糟糕的家谱,但我遇到了以下问题。
//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;
} …Run Code Online (Sandbox Code Playgroud)