2013-10-13 61 views
1

我想手动设置我的节点的开始位置,但从JSON结构加载它们。如果我把这个位置放在“节点”结构中,它可以工作,但是我试图 添加一个名为'positions:'的独立结构,我认为它应该起作用?请参阅下面的结构示例。如何使用cy.load设置cytoscape.js中节点的起始位置?

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)。

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

我也加载了预设布局。

谢谢。

回答

4

请问这是Cytoscape Web还是Cytoscape.js?

在Cytoscape.js,

+0

它的Cytoscape.js。我可以指定每个元素的工作位置,但我无法按照上述示例中的操作。 – user1768233

+2

您必须指定每个元素的位置或使用预设布局。 – maxkfranz

+1

我必须设置布局属性以使属性名称为'预设': 布局:{ name:'preset' }, – Brian