我正在使用D3创建家谱。我的数据集确实是分层的,但树的根节点是子节点。每个“子节点”包含两个“父”节点,代表每个孩子的两个父母。这是我的数据示例。
{
name: "Morgans Jumpin Jack Flash",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: [
{
name: "Moganas Heart of Fire",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "f",
parents: [
{
name: "Elkhaus Ice Storm",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: []
},{
name: "Morganas First Love",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "f",
parents: []
},
]
},{
name: "Desperado Hogan von der Accani",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: [
{
name: "Jim von Aurachgrund",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: []
},{
name: "Heroina D. Altobella",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "f",
parents: []
},
]
},
]
}
树中的每个节点都代表一只狗。这里的想法是,您可以通过沿着家谱到父母、祖父母等来查看给定的狗的谱系。
是否可以在不修改数据的情况下将给定的数据集与d3.tree()一起使用?(我知道我可能只是将“父母”重命名为“孩子”,但这对下一个查看数据集的人来说会令人难以置信地困惑。)
您不需要改变您的原始数据集,而是当您使用d3.hierarchy创建根时,您可以指定哪个属性包含“子元素”:
var root = d3.hierarchy(data, function(d) {
return d.parents;
})
第二个参数是“子”访问器,但您可以使用它来表示父母。我刚刚保留了从左到右的布局,但将其更改为从右到左的布局是相当微不足道的:
var data = {
name: "Morgans Jumpin Jack Flash",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: [
{
name: "Moganas Heart of Fire",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "f",
parents: [
{
name: "Elkhaus Ice Storm",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: []
},{
name: "Morganas First Love",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "f",
parents: []
},
]
},{
name: "Desperado Hogan von der Accani",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: [
{
name: "Jim von Aurachgrund",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "m",
parents: []
},{
name: "Heroina D. Altobella",
imagePath: "",
description: "",
subTitle: "",
body: "",
icon: "",
iconColor: "",
gender: "f",
parents: []
},
]
},
]
}
var root = d3.hierarchy(data, function(d) {
return d.parents;
})
var width =500;
var height = 300;
var margin = {left:100,top:50,right:100,bottom:50};
var svg = d3.select("body")
.append("svg")
.attr("width",width)
.attr("height",height)
var g = svg.append("g")
.attr("transform","translate("+margin.left+","+margin.top+")");
var tree = d3.tree().size([height-margin.top-margin.bottom,width-margin.left-margin.right]);
var path = d3.linkHorizontal().x(function(d) { return d.y; }).y(function(d) { return d.x; })
var layout = tree(root);
var link = g.selectAll(null)
.data(layout.links())
.enter().append("path")
.attr("class","link")
.attr("d", path)
var text = g.selectAll(null)
.data(root.descendants())
.enter().append("text")
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; })
.text(function(d) { return d.data.name; })
.attr("y",-15)
.attr("x",-10)
var node = g.selectAll(null)
.data(root.descendants())
.enter().append("circle")
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; })
.attr("class","node")
.attr("r",function(d) { return d.data.name == "" ? 0 : 8; });
path {
fill:none;
stroke: #888;
stroke-width: 2px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
有没有一种简单的方法可以从OWLAPI中的OWL本体中只检索根类?这里我指的是没有断言父类的命名类。增加了复杂性,尝试不使用reasoner,因为本体是巨大的,并且reasoner没有在足够快的时间内完成(通常)。一如既往的感谢!
问题内容: 我有一个相当简单的行家化Java项目,但是在解决这个问题时遇到了麻烦。 我的父模块定义了许多Java类(和依赖项),我希望它们对几个子模块很有用。子模块之一专用于部署Web应用程序,因此它需要一些额外的类(Servlet)以及父模块中的所有内容。 文件结构如下所示 我的父母pom看起来像这样: 孩子看起来像这样: 这是我需要让孩子知道父级中定义的类和依赖项的全部吗?它似乎不是:ecli
我想知道如果为某个参数创建一个带有空setter方法的父类,然后创建几个扩展该类的类,但不是所有的类都有该参数,会发生什么。在参数存在的类中调用set方法时,它会设置param。在参数不存在的类中,不会发生任何事情,例如: 因此,如果我们创建类A,将其上转换为Pak,并尝试,属性将被设置。 如果我们对类B也这样做,尝试什么都不会发生。 有人能解释一下“引擎盖下”发生了什么吗?我希望得到一个例外,因
我有基类orderItem并且有子类DeviceItem和ServiceItem。我提供了下面的定义。当我收到这个请求时,我执行dozer映射以将jaxb模型转换为我创建的另一个数据模型。我的数据模型也有相同的OrderItem、DerviceItem和DeviceItem类,它们是POJO。当我进行dozer映射时,类会映射到OrderItem(基类)而不是专门的子类。有没有办法执行此用户doz
我是不是漏掉了什么?
当我尝试自动连接扩展CrudRepository的接口时,我遇到了这个错误。我有两个用于两个数据库的hibernate xml配置。整个堆栈是 unsatisfiedDependencyException:创建名为“Hello Controller”的bean时出错:通过字段“stock service”表示的不满足的依赖项;嵌套异常为org.springframework.beans.facto