2016-12-03 6 views
0

Уверен, что у меня что-то не хватает!python igraph: add.edge (простейший случай) всегда переупорядочивает источник и цель

from igraph import * 
g = Graph() 
g.add_vertices(3) 
g.add_edge(0, 1) 
g.add_edge(2, 1) 
g.es[0].source; g.es[0].target # as expected: 0 -> 1 
g.es[1].source; g.es[1].target # reordered: 1 -> 2 - not 2 -> 1 

Однако API определяет

add_edge(source, target, **kwds) 

Можете ли вы предложить какой-либо помощи?

Спасибо!

ответ

1

Вам нужно сделать график направленным, иначе igraph рассматривает его как неориентированный и просто заказывает диады последовательно.

from igraph import * 
g = Graph(directed=True) 
g.add_vertices(3) 
g.add_edge(0, 1) 
g.add_edge(2, 1) 

Проверьте это:

>>> g.es[1].source 
2 
>>> g.es[1].target 
1