小编DBL*_*ore的帖子

多个d3实例在同一页面上强制布局

我的目标是使用d3 force布局来显示共享相同节点的两个不同网络.例如,在四个人中,您可以定义社交网络和家谱网络; 节点将是相同的(人),但链接(关系)可能是不同的.尽管创建了两个单独的力布局,两个单独的svg画布,并尝试定义单独的变量,但节点共享x和y位置信息.这是一个最小的例子,其中一个网络上的拖动节点改变了他们在另一个网络中的位置:http: //amath.colorado.edu/student/larremore/nodesSharingPositiond3

下面,我发布了调用创建其中一个网络的函数,创建另一个网络的代码非常相似,但在所有实例中使用不同的变量名.用于创建两个网络的注释代码可以在http://amath.colorado.edu/student/larremore/nodesSharingPositiond3/lib/minimal.js中找到,用于定义变量的脚本可以在/driver/minimalScript.js中找到< - 我没有足够的声誉直接链接这个.我很抱歉!

在d3.force工作的某个地方,位置信息是全局的或全球选择的,或者某种东西.有人能说清楚这个吗?我对保持位置信息分离的解决方案以及理解d3.force如何处理和更新位置计算感兴趣.

function makeYNet() {

// This populates the YactiveLinks variable with the proper YLinks. The goal is to be able to only display links whose value is above some threshold.
for (var i=0; i<YLinks.length; i++) {
    if (YLinks[i].link2 > thr) {
        YactiveLinks.push(YLinks[i]);
    }
}

// Add nodes and links to forceY
forceY
.nodes(YNodes)
.links(YactiveLinks);

// Draw lines
var Ylink = svgY.selectAll("line.link")
.data(YactiveLinks)
.enter()
.append("line")
.attr("class", "link")
.style("stroke-width", …
Run Code Online (Sandbox Code Playgroud)

layout multiple-instances d3.js force-layout

5
推荐指数
1
解决办法
2538
查看次数

标签 统计

d3.js ×1

force-layout ×1

layout ×1

multiple-instances ×1