Как импортировать группы из файла graphml? (networkx -> cytoscape)
Я пытаюсь перенести данные networkx в cytoscape. Я использую graphml, и с этой частью все в порядке, но у меня есть атрибут parent= имя_узла, с которым я хочу создать группу. Я не могу узнать, как отобразить это в cytoscape. Любые идеи о том, как автоматически создавать группы в Cytoscape?
Пример:
G = nx.Graph()
G.add_node("server1")
G.add_node("server1_port1", parent="server1")
G.add_node("server1_port2", parent="server1")
G.add_node("server2")
G.add_node("server2_port1", parent="server2)
G.add_node("server2_port2", parent="server2)
G.add_edge("server1_port1", "server2_port1")
nx.write_graphml(G, "output.graphml")
Это должно выглядеть примерно так:
+-----------------+
| server1 |
| |
| {port1} {port2} |
| ~ |
| | |
+----|------------+
|
+----|------------+
| server2 |
| | |
| ~ |
| {port1} {port2} |
| |
+-----------------+
1 ответ
К сожалению, наш читатель GraphML не поддерживает группы - я могу придумать способы сделать это полуавтоматически, но я не уверен, что вы этого хотите. Что вам нужно сделать, это добавить атрибут к каждому из ваших узлов (например, "родитель"), а затем создать группы, используя этот атрибут (setsApp поможет вам сделать это). Создав группы, используйте визуализацию составного узла, чтобы получить желаемый вид.
-- самокат