У меня есть набор данных, содержащий пользователя и каждого друга, которого у них есть. Формат аналогичен ниже, где есть user_id
поле и friend_id
поле, содержащее соответствующие идентификаторы каждого друга.
user_id | friend_id
A B
A C
B A
B G
Я собираюсь получить неориентированный график, показывающий преимущество между каждым пользователем и каждым его другом, как показано ниже.
A - B - G
|
C
Мне трудно узнать, как связать pandas
с networkx
или graphviz
и другими ресурсами, которые расширяются при создании социального графика из табличных данных.
В качестве примера здесь показан способ отображения неориентированного сетевого графика с использованием networkx
, pandas
и matplotlib
.
Код:
import matplotlib.pyplot as plt
import networkx as nx
# store pairs to a list of tuples
tuples = [tuple(x) for x in df.values]
# set up a graph and show it
G = nx.DiGraph()
G.add_edges_from(tuples)
nx.draw_networkx(G)
plt.xticks([], [])
plt.yticks([], [])
plt.show()
Выход:
networkX
документы по networkX
и получить то, что я хотел. Спасибо за вашу помощь в получении стартового кода.