我正在尝试创建一个包含隔离节点的二部图,但是nx.bipartite_layout将其连接到其他节点。如何防止这种情况发生?
我试图以多种方式重构图,但是只有当所有节点都至少有一条边时,它才能很好地工作。
您可以使用以下代码重现该问题:
G = nx.dense_gnm_random_graph(6, 9, 5)
G.remove_edges_from([(3,1), (3,4), (3,5), (4,5)])
print(G.edges())
# prints [(0, 2), (0, 4), (2, 3), (2, 4), (2, 5)]
nx.draw(G, pos=nx.bipartite_layout(G, list(G.nodes())[:len(G.nodes())//2]), node_color='gray',with_labels=True)
# produces a graph with node 1 tied to 0 and 2 (even though it is an isolate)
实际输出应该是其中仍孤立1的图。