将布局从networkx转移到cytoscape

hig*_*dth 11 python gml graph-layout networkx cytoscape

我想使用networkx为图形生成布局.是否可以将此布局转移到cytoscape并将其绘制到那里?我试着简单地写一个图表

import networkx as nx
G = nx.Graph()
G.add_edge(0,1,weight=.1)
G.add_edge(2,1,weight=.2)
nx.write_gml(G,'g.gml')
nx.write_graphml(G,'g.xml')
Run Code Online (Sandbox Code Playgroud)

但这些都不是在cytoscape中读取的.我不确定如何以包含位置的格式传输图表.

sam*_*ias 13

您的g.xmlGraphML文件看起来不错,并为我加载到Cytoscape(我在Mac上).你安装了graphmlreader插件吗?

如果没有,请下载并将其放入插件文件夹,然后重新启动Cytoscape并g.xml再次尝试加载网络.

更新下面是一些代码,用于将图形外观和定位添加到networkx图形中.它有点冗长,您可以根据需要省略一些属性:

import networkx as nx

G = nx.Graph()
G.add_edge(0, 1, weight=0.1, label='edge', graphics={
    'width': 1.0, 'fill': '"#0000ff"', 'type': '"line"', 'Line': [],
    'source_arrow': 0, 'target_arrow': 0})
nx.set_node_attributes(G, 'graphics', {
    0: {'x': -85.0, 'y': -97.0, 'w': 20.0, 'h': 20.0,
        'type': '"ellipse"', 'fill': '"#889999"', 'outline': '"#666666"',
        'outline_width': 1.0},
    1: {'x': -16.0, 'y': -1.0, 'w': 40.0, 'h': 40.0,
        'type': '"ellipse"', 'fill': '"#ff9999"', 'outline': '"#666666"',
        'outline_width': 1.0}
    })
nx.set_node_attributes(G, 'label', {0: "0", 1: "1"})
nx.write_gml(G, 'network.gml')
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述