2013-08-22 1 views
2

Я использую python 2.7 и networkx 1.8 для некоторой обработки графа, и я пытаюсь вывести свой граф, содержащий метки узлов, в формат Pajek .net.networkx issue with write_pajek

Networkx, кажется, не окружает метки узлов двойными кавычками, как требуется format.

Мой код очень прост

for link in links: 
     graph.add_node(label) 
     graph.add_edge(label, link) 

    nx.write_pajek(graph, 'path_to_file.net', encoding = 'UTF-8') 

Сталкивались ли вы что-то подобное?

ответ

1

Вы уверены, что указанный текст не требуется?

Из документации pajek linked to by the networkx manual:

этикетка - если этикетка начинается с символа a..z или 0..9 первый пустой определяет конец этикетки (пример: vertex1), этикетки, состоящей из более слов должны быть заключены в паре специальных символов (например: «вершина 1»)

И при попытке примера графа с четырьмя узлов с именем {12, 13, сингл «мульти части»}, Я получаю следующее ,

*network NetworkX 
*vertices 4 
1 "multi part" 0.0 0.0 ellipse 
2 single 0.0 0.0 ellipse 
3 12 0.0 0.0 ellipse 
4 13 0.0 0.0 ellipse 
*arcs 
1 3 1.0 
2 3 1.0 

, который цитирует длинные текстовые метки, но не числовые или короткие метки - то есть он соответствует стандарту, описанному выше.

+0

Спасибо за информацию. Оказывается, это не проблема с networkx, а скорее с Gephi, который я использовал для чтения графика. В Pajek он работает по назначению, но с Gephi метки узлов не отображаются –