Javascript库 - 家谱流程图

时间:2012-05-03 10:56:19

标签: javascript graph

我正在寻找一个简单的Javascript库(svg?),它允许我绘制一个家谱关系。

我在google上搜索了很多很多有趣的图书馆,比如Raphaël和它的扩展Dracula。 谷歌也有自己的库来制作流程图。

不幸的是,每个库都在一个带有sigle线的节点之间建立关系。如果A和B与C有关系,我将获得2行:一行从A到C,一行从B到C.

我需要的是一条从A到B的线(我们称之为AB)和一条从AB到C的线来表示A和B的结婚。

example-image

感谢。

6 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。 这是我发现的:

您还有其他解决方案吗?

答案 1 :(得分:1)

我定制了一个Graphviz点文件来生成这样的输出。目前,我正在使用Ruby脚本从.gedcom文件生成此脚本。 enter image description here

这里的.dot内容,带有数字的节点只是点,并以正确的方式流过边缘。

digraph G {
  graph [nodesep=0.2,splines=ortho,ranksep=0.05]
  node [shape=box,fontname=Helvetica,fontsize=8;color="green",fixedsize=true,width=1,height=0.5,style=filled]
  Grandfather [color="lightblue"]
  Grandmother [color="pink"]
  StephGrandmother [color="pink"]
  Father [color="lightblue"]
  Mother [color="pink"]
  Uncle [color="lightblue"]
  Laurent [color="lightblue"]
  Child2 [color="lightblue"]
  Child3, Child4 [color="pink"]
  node[label="", width=0, height=0];
  edge[arrowhead=none, color=blue];
  {rank=same;StephGrandmother;Grandfather;Grandmother;Grandfather1}
  {rank=same;Father;Father1;Mother;Uncle}
  {rank=same;Laurent;Child2;Child3,Child4}
  {rank=same;Father2;Father3}
  StephGrandmother:e -> Grandfather:w
  Grandfather:e -> Grandfather1
  Grandfather1 -> Grandmother:w
  Grandfather1 -> Grandfather2
  Grandfather2 -> Father:n 
  Grandfather2 -> Uncle:n
  Father:e -> Father1
  Father1 -> Mother:w
  Father1 -> Father2
  Father2:w -> Laurent:n 
  Father2:w -> Child2:n
  Father2 -> Father3
  Father3:e -> Child3:n
  Father3:e -> Child4:n
}

答案 2 :(得分:1)

我发现3种方法可以满足您的要求:

  1. BalkanGraph

enter image description here

参考链接:https://balkangraph.com/OrgChartJS/Demos/RoyalFamilyTree

  1. dTree(基于D3)

enter image description here

演示:https://treehouse.gartner.io/ErikGartner/58e58be650453b6d49d7

参考链接:https://github.com/ErikGartner/dTree

  1. GoJS Genogram

enter image description here

参考链接:https://gojs.net/latest/samples/genogram.html

答案 3 :(得分:0)

虽然不是"库"但是存在一个实用程序,允许您精确绘制您描述的内容。简单地称为" SVG Utility",这是一个免费的软件,带有图形设计器,允许您定义真实的家庭关系(包括多个配偶,暂定的孩子等)。请参阅More on SVG Family Trees

设计完成后,将以简单的文本文件格式捕获关系和布局,以便对其进行修改或重复使用。该实用程序生成SVG版本,以便在博客文章或其他网页中使用。有几种可能的配置允许在同一页面上显示多个SVG图像,工具提示或弹出信息在人员框或"家庭",单个树的平移缩放,缩略图图像和字幕等等

Dropbox文件夹中提供了安装工具包,文档和示例。联系上面提到的博客文章的作者以获取访问权限。

该实用程序旨在在Windows下运行,但也在Mac上的WINE兼容层下运行。

答案 4 :(得分:0)

找到了TreantJS-可能会有帮助。

答案 5 :(得分:0)

我知道我参加聚会真的很晚,但是当我看到您的示例图像是使用yEd创建的时,我认为链接到基于yEd的基础软件库将是一个好主意。毕竟,有一个JavaScript version of the graph visualization library具有内置的族谱的特定自动布局。

有一篇关于如何将该库用于draw family charts in JavaScript的文章,因此,如果是在商业环境中(这是一个商业图书馆),您可能需要看看一下,因为它专门解决了该问题与连接(“婚姻节点”)一起描述:

Sample Automatic Family Tree Layout

灰色圆形节点表示婚姻,子节点连接到各自父母的婚姻节点。

如果不是自动布局,当然您可能还需要查看this question中的其他库。

免责声明:我为提供链接库的公司工作,但我不代表该公司。我的评论,意见和答案是我自己的。