我正在尝试使用 cytoscape.js 和cytoscope-cola.js扩展来实现这种效果。
我想让我的图形的边缘直接向下,如下图所示:
而不是默认显示的无约束图。我正在使用可乐布局,因为我希望能够输入自定义边缘权重。
我已经构建了一个 codepen 来演示我所看到的;但这是我构建图表的方式:
var cy = window.cy = cytoscape({
container: document.getElementById('cy'),
layout: {
name: 'cola',
edgeLength: function( edge ){
return edge._private.data.edge_weight;
},
flow: { axis: 'y', minSeparation: 50 },
avoidOverlap: true,
alignment: function( node ){
},
ready: function(){
console.log('rendered graph')
window.prev = undefined
}
},
style: [
{
selector: 'node',
css: {
'content': 'data(name)'
}
},
{
selector: 'edge',
css: {
'target-arrow-shape': 'triangle'
}
}
],
elements: {
nodes: [
{ data: { id: 'j', name: 'J' } },
{ data: { id: 'e', name: 'E' } },
{ data: { id: 'k', name: 'K' } },
{ data: { id: 'l', name: 'L' } },
{ data: { id: 'g', name: 'G' } }
],
edges: [
{ data: { source: 'j', edge_weight:80, target: 'e' } },
{ data: { source: 'j', edge_weight:80, target: 'l' } },
{ data: { source: 'e', edge_weight: 200, target: 'k' } },
{ data: { source: 'k', target: 'g' } }
]
},
});
cy.minZoom(0.75);
任何关于我如何将图形限制为上图中的行为的输入或方向都会很棒:)