Lect 07: Bipartite Graphs with Networkx ||Bipartite Graphs using Python
Channel: Data Science Center
Date: 2022-05-29

Edges are only allowed across different sets and are not allowed within nodes belonging
to the same set. In most cases, nodes belonging to different sets are also characterized by
particular node types. 

from networkx.drawing.layout import bipartite_layout

user = ['A', 'B', 'C', 'D', 'E']
item = [1, 2, 3, 4, 5]
E = zip(np.random.choice(user, 10), np.random.choice(item, 10))

Edge = pd.DataFrame([{"source":user, "target":item} for user, item in E])
G.add_nodes_from(user, bipartite=0)
G.add_nodes_from(item, bipartite=1)

G.add_edges_from(tuple(x) for x in Edge.values)


plt.figure(figsize=(10, 10))
nx.draw_networkx(G, pos, node_size= 1700, edge_color='g', node_color='r', arrowsize=32, font_size=14, with_labels=True)
plt.show()