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

3
我想要反转Digraph中的箭头,使得第二列成为父节点。我尝试使用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

该类别是针对“至”的列。但是当我尝试使用有向图时,它显示“至”值汇聚到“从”值。我希望使其分散离开“从”值。

1个回答

2
nx.DiGraph.reverse() 要求传入一个图形实例。相反,将 create_using 设置为 nx.DiGraph(),从数据框的边创建有向图,然后反转边的方向即可。"最初的回答"。
G=nx.from_pandas_edgelist(df, 'To', 'From', create_using=nx.DiGraph())
nx.draw(G)

最初的回答:
现在按照上述步骤操作:

输入图像描述

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

enter image description here


使用 draw_networkx_edges 函数,您还可以在 edgelist 参数中传递反向边。 - user66081

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接