NetworkX: написать график в формате LEDA
Я использую NetworkX
Модуль Python для работы с графиками, и я доволен этим до сих пор.
Тем не менее, я попытался записать график в файл в формате LEDA (более подробную информацию здесь). NetworkX
документация, кажется, не упоминает ни одной функции, чтобы сделать это (я только нашел, как читать и анализировать отформатированные графики LEDA). Есть ли функция для написания графиков в формате LEDA, которую я не видел?
1 ответ
Я создал код для записи графика в формате leda:
import networkx as nx
import os
import pandas as pd
df = pd.read_csv(file,header=0,sep="\t")
G = nx.Graph()
G = nx.from_pandas_edgelist(df, 'from', 'to')
path_sub_network_leda=str(file)+ ".gw"
with open(path_sub_network_leda,"a") as file_graph:
file_graph.write('LEDA.GRAPH\n')
file_graph.write('void\n')
file_graph.write('void\n')
file_graph.write('-2\n')
file_graph.write(str(G.order())+str("\n"))
nodes = list(G)
nodenumber = dict(zip(nodes, range(1, len(nodes) + 1)))
for n in nodes:
node_row=str("|{") + str(n) + str("}|")+str("\n")
file_graph.write(node_row)
file_graph.write(str(G.number_of_edges())+str("\n"))
for u, v, edgedata in G.edges(data=True):
d = edgedata.copy()
edge_row=str(nodenumber[u]) +" " + str(nodenumber[v])+ " "+ str(0)+ str(" |{}|") +str("\n")
file_graph.write(edge_row)