2014-02-16 5 views
1

У меня есть .gml-файл (Nor graphML), который содержит детали моих узлов и ребер. Я ввожу граф в использовании питона решений библиотеки igraph следующего код:Как создать взвешенный график из .gml-файла в python igraph

g = igraph.read("mydata.gml")" 

Я дал значение в моем .gml файла кромочные:

edge 
[ 
source 1 
target 0 
value 6.25 
] 

Также файл начинается с

graph 
[ 
    directed 0 
    weighted 1 

Однако, когда я проверяю, g.is_weighted() возвращает false. Как заставить igraph принимать значения в .gml-файле как веса для краев графика?

ответ

1

Метод is_weighted() просто проверяет, имеет ли ваш граф атрибут края по имени weight. В вашем случае это не так, потому что значения из файла GML хранятся в атрибуте края value, а не в weight. Решение состоит в том, чтобы либо заменить каждое вхождение value с weight во входной файл или переименовать атрибут в igraph после загрузки файла следующим образом:

g.es["weight"] = g.es["value"] 
del g.es["value"] 
+0

Спасибо. Есть ли способ включить веса при построении графиков в графике? Возможно, по разным краям? –

+0

Некоторые алгоритмы компоновки могут в какой-то мере учитывать весовые коэффициенты; см., например, 'Graph.layout_fruchterman_reingold'. Однако, поскольку весы обычно представляют собой множества ограничений, которые не могут быть выполнены одновременно, эти алгоритмы не гарантируют уважения ко всем из них. –

+0

Хм. Спасибо за помощь. Решила мою проблему до степени :) –

 Смежные вопросы

  • Нет связанных вопросов^_^