我目前正在进行一项小型家谱实验,并希望实现一个简单的家谱,如下图所示.
到目前为止,最好的搜索结果只产生了一个例子,其中一个孩子只能有一个父节点.但我需要的是能够在实体(从父亲到母亲)和节点与其他链接(从子节点到父母链接)之间建立链接.目前我没有固定的数据模式.
我为此选择了d3.js 因为它看起来能够胜任这项工作.我只是不知道如何开始甚至从哪里开始.关于d3.js的教程仅涵盖条形图等标准图表.
我希望有人可以帮助我.
我想生成这个:
使用此数据结构(ID是随机的,顺便说一下,不是顺序的):
var tree = [
{ "id": 1, "name": "Me", "dob": "1988", "children": [4], "partners" : [2,3], root:true, level: 0, "parents": [5,6] },
{ "id": 2, "name": "Mistress 1", "dob": "1987", "children": [4], "partners" : [1], level: 0, "parents": [] },
{ "id": 3, "name": "Wife 1", "dob": "1988", "children": [5], "partners" : [1], level: 0, "parents": [] },
{ "id": 4, "name": "son 1", "dob": "", "children": [], "partners" : [], level: -1, "parents": [1,2] },
{ "id": …
Run Code Online (Sandbox Code Playgroud) 我试图用Dot和GraphViz绘制一个家谱.
这就是我目前拥有的:
# just graph set-up
digraph simpsons {
ratio = "auto"
mincross = 2.0
# draw some nodes
"Abraham" [shape=box, regular=1, color="blue"] ;
"Mona" [shape=box, regular=1, color="pink"] ;
"Clancy" [shape=box, regular=1, color="blue"] ;
"Jackeline" [shape=box, regular=1, color="pink"] ;
"Herb" [shape=box, regular=1, color="blue"] ;
"Homer" [shape=box, regular=1, color="blue"] ;
"Marge" [shape=box, regular=1, color="pink"] ;
"Patty" [shape=box, regular=1, color="pink"] ;
"Selma" [shape=box, regular=1, color="pink"] ;
"Bart" [shape=box, regular=1, color="blue"] ;
"Lisa" [shape=box, regular=1, color="pink"] ;
"Maggie" [shape=box, regular=1, color="pink"] ;
"Ling" …
Run Code Online (Sandbox Code Playgroud) 我是一名HTML/CSS开发人员,正在研究构建"家庭树"的javascript解决方案,这种解决方案需要以有意义的方式展示婚姻(当然来自家庭以外).
基本上我看着它立足于一个树状图的基础上,d3.js,例如http://bl.ocks.org/4063570,但我在努力寻找任何东西在那里,表示"结婚".
下面是我将基于它的数据的图像:
任何帮助/建议/链接将不胜感激!我只是不知道它是否可能,但是我很乐意使用d3.js,因为它看起来很精致,而且看起来很多功能.
我希望能够计算家谱中两个人之间的家庭关系,给定以下数据模式(从我的实际数据模式简化,仅显示直接适用于此问题的列):
individual
----------
id
gender
child
----------
child_id
father_id
mother_id
Run Code Online (Sandbox Code Playgroud)
通过这种结构,如何计算两个个体id(即堂兄,大叔叔等)之间的关系.
另外,由于实际上有两种关系(即AB可能是侄子而BA是叔叔),如何生成另一种的补充(给定叔叔,并假设我们知道性别,我们如何生成侄子?).这是一个微不足道的问题,前者是我真正感兴趣的.
谢谢大家!
GEDCOM是交换家谱数据的标准.
我发现了解析器
但到目前为止还没有用Python编写.我最接近的是来自GRAMPS项目的文件libgedcom.py,但是对GRAMPS模块的引用如此之多,以至于我无法使用它.
我只想要一个用Python编写的简单的独立GEDCOM解析器库.这存在吗?
我正在创建一个交互式家谱树创建者,不像更简单的版本,它是简单的谱系图表/树.
我的要求(基于familyecho.com)是:
我遇到的问题是:我正在根据"当前"节点/家庭成员生成偏移量,当我越过第一代时,例如2个父母,它重叠.
重叠的示例以及未在同一X轴上绘制的伙伴:
这是我遇到问题的实际app和主js文件.这里是一个简化的jsfiddle我创建演示父/偏移问题,但我真的要解决重叠这个一般,除了确保合作伙伴绘制在同一x轴的其他合作伙伴.
我怎样才能解决这个问题以及未来可能发生的重叠冲突?我是否需要某种重绘功能来检测碰撞并在检测到时调整每个块的偏移?我试图让它无缝,所以重绘的次数有限.
计算相对于"上下文"或当前节点的偏移量的示例:
var offset = getCurrentNodeOffset();
if ( relationship == RELATIONSHIPS.PARTNER ) {
var t = offset.top; // same level
var l = offset.left + ( blockWidth + 25 );
} else {
var t = offset.top - (blockHeight + 123 ); // higher
var l = offset.left - ( blockWidth - 25 );
}
Run Code Online (Sandbox Code Playgroud) 我(由我的妻子)负责创建一个程序,让她跟踪我们家庭两侧的家谱.
有谁知道代表这类信息的成本效益(免费)控制?
我正在寻找的是一个修改过的组织结构图表/树.修改是任何节点应该有2个父节点(EG一个孩子应该有一个母亲/父亲).
到目前为止我提出的解决方案是拥有2棵树,一棵祖先树和一棵后代树,每个树被检查为每个树的根节点.它有效,但有点笨重.
我主要在c#WinForms中工作,所以.Net类型控件或源代码更可取.
我正在开发一种基因组学应用程序,目前正处于建立个体间关系的阶段.
根据我的研究,我注意到大多数关系的映射都是基于家庭(父亲和母亲),因此我想在盲目地采用它之前理解这背后的根本原因.
由于我的项目是父权制,我认为只要一个人加上父亲,就会创造一个新的家庭
genealogy ×10
family-tree ×5
javascript ×4
charts ×2
d3.js ×2
tree ×2
c# ×1
calendar ×1
controls ×1
date ×1
dot ×1
gedcom ×1
graph ×1
graph-layout ×1
graph-theory ×1
graphviz ×1
jsplumb ×1
parsing ×1
python ×1
rdf ×1
relationship ×1
time ×1