在cytoscape js中创建允许父子关系的层次结构布局?

时间:2017-02-27 21:52:34

标签: javascript graph visualization cytoscape.js

例如,我想在级别顺序层次结构中可视化我的图形,但每个节点可以有多个父项和子项,我希望能够通过选择2个节点遍历GUI中的图形。

目前,'breadthfirst'布局允许层次结构,而'cose'布局允许复合节点(可以有多个父节点和子节点的节点)。有没有办法调整其中任何一个的源代码,或者从头开始为cytoscape制作我自己的自定义布局?

1 个答案:

答案 0 :(得分:0)

尝试现有的布局:

df = pd.read_csv(StringIO("""h1^Ah2^Ah3^B111^A222^A333^B111^A222^A333^B111^A222^A333"""), sep='\^B',engine='python', header=None) df = df.stack().to_frame() df Out[52]: 0 0 0 h1^Ah2^Ah3 1 111^A222^A333 2 111^A222^A333 3 111^A222^A333 df = df[0].str.split('\^A', expand=True) df Out[54]: 0 1 2 0 0 h1 h2 h3 1 111 222 333 2 111 222 333 3 111 222 333 df.columns = df.iloc[0].tolist() df Out[69]: h1 h2 h3 0 0 h1 h2 h3 1 111 222 333 2 111 222 333 3 111 222 333 df = df[1:] df Out[71]: h1 h2 h3 0 1 111 222 333 2 111 222 333 3 111 222 333 breadthfirst是特定于DAG的布局。 dagre支持类似DAG的流程,但它是一种力导向的布局。

或者编写自己的布局:http://js.cytoscape.org/#extensions/api