如何使用networkx反转有向图中的箭头?

时间:2019-06-20 11:31:00

标签: python graph networkx

我正在尝试反转有向图的箭头,使第二列成为父级。我正在尝试使用networkx的nx.Digraph.reverse()方法,但它给我带来TypeError错误:reverse()缺少1个必需的位置参数:'self'。当也有To值的属性并且字典不能拥有相同的键值,因此我不能简单地互换字典的键时,如何使第二列成为父节点。

这是我的代码:

G=nx.from_pandas_edgelist(train, 'To', 'From',create_using=nx.DiGraph.reverse())

我的数据框是:

To    |    From   |  Category
A     |     A     |    0
B     |     A     |    0
C     |     A     |    0
D     |     F     |    1
E     |     F     |    1

该类别用于“收件人”列。但是当我尝试使用Digraph时,它会显示“ To”值收敛到“ From”值。我要使其偏离'From'值。

1 个答案:

答案 0 :(得分:1)

nx.DiGraph.reverse()需要一个图的实例。而是将create_using设置为nx.DiGraph()从数据框的边缘创建有向图,然后然后反转边缘的方向:

G=nx.from_pandas_edgelist(df, 'To', 'From', create_using=nx.DiGraph())
nx.draw(G)

enter image description here

现在通过上述操作:

G_rev = nx.DiGraph.reverse(G)
nx.draw(G_rev)

enter image description here