D3.js d3有向图,它是如何工作的
我正在尝试将一个d3有向图插入到胸部超级类型的主干视图中。我能够做到这一点,但仍然有问题的方式,它是工作的3代码 首先,我们创建通过节点和边的力布局D3.js d3有向图,它是如何工作的,d3.js,graph,D3.js,Graph,我正在尝试将一个d3有向图插入到胸部超级类型的主干视图中。我能够做到这一点,但仍然有问题的方式,它是工作的3代码 首先,我们创建通过节点和边的力布局 var force = d3.layout.force() .nodes(nodes) .links(links) .size([width, height]) .linkDistance(150) .charge(-500) .on('tick', tick) 这真的创建了图形吗 这两条线是干什么的 this.path = this.svg.
var force = d3.layout.force()
.nodes(nodes)
.links(links)
.size([width, height])
.linkDistance(150)
.charge(-500)
.on('tick', tick)
这真的创建了图形吗
这两条线是干什么的
this.path = this.svg.append('svg:g').selectAll('path');
this.circle = this.svg.append('svg:g').selectAll('g');
将svg:g元素附加到svg元素。好的,我明白了。但是有了selectAll。我不明白。已经有路径了吗?由force布局创建
this.path=this.path.datathis.links;这有什么用?我真的不知道
然后附加路径
this.path.enter().append('svg:path')
.attr('class', 'link')
.style('marker-start', function (d) {
return d.left ? 'url(#start-arrow)' : '';
})
.style('marker-end', function (d) {
return d.right ? 'url(#end-arrow)' : '';
});
然后是节点。开始喜欢
this.circle = this.circle.data(this.nodes, function (d) {
return d.id;
});
我认为首先创建一个组是因为要将圆圈和标签文本保持在一起
var g = this.circle.enter().append('svg:g');
现在我们创建圆
g.append('svg:circle')
.attr('class', 'node')
.attr('r', 12)
.style('stroke', _.bind(function (d) {
return d3.rgb(this.colors(d.id)).darker().toString();
}, this))
.classed('reflexive', function (d) {
return d.reflexive;
})
将标签文本附加到保存组
g.append('svg:text')
.attr('x', 0)
.attr('y', 4)
.attr('class', 'id')
.text(function (d) {
return d.id;
});
所以我大致了解了正在发生的事情。但不完全如此。感谢您提供的帮助,帮助您更好地了解发生在哪里的情况。您真的应该看看d3演示文稿。它会回答你问的很多问题。我知道。问题时间有限:。不管怎样,看看d3。顺便说一句,请找出第二点。