vis.js 网络拟合函数
vis.js network fit function
我正在使用 vis.js 4.16.1 绘制网络图。目前我有两个网络图。一张供用户绘制的网络图。用户完成后,我想将网络图完全复制到第二个网络图。但是,我不能设置与第一个相同的观点。这是第一个网络的选项:
options = {
locale: 'en',
physics: {
"enabled": false,
},
edges: {
smooth: {
type: 'continuous'
}
},
interaction: {
navigationButtons: true,
selectConnectedEdges: false
}
};
我已禁用物理以允许用户自己组织节点。
这是第二个网络的选项:
var options = {
locale: 'en',
physics: {
"enabled": false
},
edges: {
smooth: {
type: 'continuous'
}
},
interaction: {
dragNodes: false,
dragView:true
}
};
当我使用拟合函数时(http://www.cse.unsw.edu.au/~mike/myrlibrary/visNetwork/doc/network/)
var fitOption = {
nodes: nodes.getIds() //nodes is type of vis.DataSet contains all the nodes
}
secondNetwork.fit(fitOption);
没有任何变化。
当我使用 moveTo
函数时:
var centerOptions = {
position: {
x: firstNetwork.getViewPosition().x,
y: firstNetwork.getViewPosition().y},
}
}
secondNetwork.moveTo(centerOptions);
仍然,我无法将我的 canvas 移动到第一个网络关注的点。 canvas 根本没有动。
有人可以给我一些建议吗?提前致谢,
您可以使用network.fit()
,这与右下角的上按钮一样。所以所有的节点都会被聚焦。
您可以将数据集对象用于节点和边,而不是使用
将所有节点和边复制到相同的 xy 坐标相当容易
var xy = network1.edges.get();
network2.edges.add(xy);
谢谢 Reiner,我已经弄清楚 fit() 和 moveTo() 函数在我的上下文中不起作用的原因,我需要设置选项:
physics: {
"enabled": true
}
否则是行不通的。在我调用我的 fit() 函数之前所做的是,将 enabled 更改为 true,调用 fit() 函数,然后将 enabled 设置为 false。
我正在使用 vis.js 4.16.1 绘制网络图。目前我有两个网络图。一张供用户绘制的网络图。用户完成后,我想将网络图完全复制到第二个网络图。但是,我不能设置与第一个相同的观点。这是第一个网络的选项:
options = {
locale: 'en',
physics: {
"enabled": false,
},
edges: {
smooth: {
type: 'continuous'
}
},
interaction: {
navigationButtons: true,
selectConnectedEdges: false
}
};
我已禁用物理以允许用户自己组织节点。
这是第二个网络的选项:
var options = {
locale: 'en',
physics: {
"enabled": false
},
edges: {
smooth: {
type: 'continuous'
}
},
interaction: {
dragNodes: false,
dragView:true
}
};
当我使用拟合函数时(http://www.cse.unsw.edu.au/~mike/myrlibrary/visNetwork/doc/network/)
var fitOption = {
nodes: nodes.getIds() //nodes is type of vis.DataSet contains all the nodes
}
secondNetwork.fit(fitOption);
没有任何变化。
当我使用 moveTo
函数时:
var centerOptions = {
position: {
x: firstNetwork.getViewPosition().x,
y: firstNetwork.getViewPosition().y},
}
}
secondNetwork.moveTo(centerOptions);
仍然,我无法将我的 canvas 移动到第一个网络关注的点。 canvas 根本没有动。 有人可以给我一些建议吗?提前致谢,
您可以使用network.fit()
,这与右下角的上按钮一样。所以所有的节点都会被聚焦。
您可以将数据集对象用于节点和边,而不是使用
将所有节点和边复制到相同的 xy 坐标相当容易var xy = network1.edges.get();
network2.edges.add(xy);
谢谢 Reiner,我已经弄清楚 fit() 和 moveTo() 函数在我的上下文中不起作用的原因,我需要设置选项:
physics: {
"enabled": true
}
否则是行不通的。在我调用我的 fit() 函数之前所做的是,将 enabled 更改为 true,调用 fit() 函数,然后将 enabled 设置为 false。