Algorithm 具有层次布局的有向无环图

Algorithm 具有层次布局的有向无环图,algorithm,tree,data-visualization,directed-acyclic-graphs,family-tree,Algorithm,Tree,Data Visualization,Directed Acyclic Graphs,Family Tree,我正在尝试以编程方式构建一个族谱。我不在乎输入数据的格式,因为文本很容易解析(我是NLP研究员),但我很难弄清楚如何构建(显示)树。以下是我的问题: 家谱不是树。树是一种结构,其中每个子节点都有一个且只有一个父节点。家谱实际上是有向无环图(DAG) 有许多库可以生成DAG,但这些可视化不是静态的,它们通常不好看。一些例子: 通常我想要什么就做什么,但它不能画出看起来不连贯和不干净的边缘 看起来很神奇,但严格来说它是一棵树,不是一只狗。我已经尝试过把它变成一个DAG,但我认为这是不可能的 可以精

我正在尝试以编程方式构建一个族谱。我不在乎输入数据的格式,因为文本很容易解析(我是NLP研究员),但我很难弄清楚如何构建(显示)树。以下是我的问题:

  • 家谱不是树。树是一种结构,其中每个子节点都有一个且只有一个父节点。家谱实际上是有向无环图(DAG)
  • 有许多库可以生成DAG,但这些可视化不是静态的,它们通常不好看。一些例子:

    • 通常我想要什么就做什么,但它不能画出看起来不连贯和不干净的边缘
    • 看起来很神奇,但严格来说它是一棵树,不是一只狗。我已经尝试过把它变成一个DAG,但我认为这是不可能的
    • 可以精确地完成我想要的操作,除了我不能让它从父对象到子对象的中心绘制边(请参见我的上一篇文章)
  • 总之,我需要一个框架来:

  • 解析家谱数据
  • 根据数据构建DAG
  • 并生成一个具有分层布局的DAG SVG,使其看起来像一棵树
  • 我知道我找不到能同时做到这三点的东西(我花了两周的时间搜索),但我希望能找到能做到后者的东西,或者至少能帮我开发一种算法。在这一点上,我不在乎我是否需要学习一门全新的语言才能做到这一点。我要求很多,但任何资源,图书馆,或建议,你可以发送给我的方式将是一个巨大的帮助

    免责声明我不寻求以下任何一项:

    • 付费(或免费)服务,如内置的家谱可视化
    • 手动绘制节点/边的方法,例如或

    我只是在寻找做分层布局的算法。谢谢

    你找到解决办法了吗?@WizardofKneup-Nope。我使用了现有的工具,但没有生成我想要的输出,而且我没有时间学习布局的数学知识并实现它。有什么想法吗?我也用Graphviz来布局。您是否已经尝试过“头夹”和“头端口”属性?否则,对于我的Vithanco.com软件,我会使用Graphviz作为库,自己绘制节点和边。我可以通过这种方式解决一些问题,例如Graphviz有时会与边缘方向混淆。我的软件修复了这个问题,因为它只使用边缘路径。很高兴解释更多。也许Vithanco应该画你的画:-)