python igraph:add.edge(最简单的情况)总是重新排序源和目标

时间:2016-12-03 05:47:25

标签: python igraph

当然我错过了什么!

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 个答案:

答案 0 :(得分:1)

你需要指示图形,否则igraph将其视为无向,只需按顺序对dyads进行排序。

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