Как повернуть стрелки в орграфе с помощью networkx? - PullRequest
2 голосов
/ 20 июня 2019

Я пытаюсь перевернуть стрелки орграфа, сделав второй столбец родительским.Я пытаюсь использовать метод nx.Digraph.reverse () для networkx, но он дает мне ошибку 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».Я хочу сделать так, чтобы он отклонялся от значения «От».

1 Ответ

1 голос
/ 20 июня 2019

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

...