如何使用cy.load在cytoscape.js中设置节点的起始位置?

时间:2013-10-13 10:53:14

标签: javascript cytoscape.js cytoscape-web cytoscape

我正在尝试手动设置节点的起始位置,但是从JSON结构加载它们。如果我把位置放在'节点'结构中它是有效的,但我正在尝试 添加一个名为'position:'的独立结构,我认为应该有效吗?请参阅下面的结构示例。

var graphdata = { nodes: [ { data: { id: 'j', name: 'Jerry', width: 20, height: 20 ,     shape: 'rectangle' }},
                       { data: { id: 't', name: 'Tom', width: 20 , height: 20, shape: 'circle' } },
                       { data: { id: 'm', name: 'Mary', width: 20 , height: 20, shape: 'circle' } } ,
                       { data: { id: 'b', name: 'Bob', width: 20 , height: 20, shape: 'circle' } } ],

              edges: [
                      { data: { source: 'j', target: 't', faveColor: '#6FB1FC', strength: 90 } },
                      { data: { source: 't', target: 'm', faveColor: '#6FB1FC', strength: 90 } },
                      { data: { source: 'm', target: 'b', faveColor: '#6FB1FC', strength: 90 } } ],

             positions: [ { j: { x:100,y:100 } }, 
                          { t: { x:100,y:200 } } ]

后来我打电话     cy.load(graphdata)。

节点和边缘显示正常但位置似乎根本没有受到影响。

我还加载了预设布局。

感谢。

2 个答案:

答案 0 :(得分:4)

这是Cytoscape Web还是Cytoscape.js?

在Cytoscape.js中,

答案 1 :(得分:3)

将布局名称更改为“预设”,然后将考虑位置值。 参考 - http://js.cytoscape.org/#layouts/preset