python - NetworkX 中的二分图

标签 python matplotlib networkx bipartite

B.add_nodes_from(a, bipartite=1)
B.add_nodes_from(b, bipartite=0)
nx.draw(B, with_labels = True)  
plt.savefig("graph.png")

我得到下图。我怎样才能使它看起来像一个正确的二分图?

My graph

最佳答案

您可以执行类似的操作,从特定 x 处的每个分区绘制节点。坐标:

X, Y = bipartite.sets(B)
pos = dict()
pos.update( (n, (1, i)) for i, n in enumerate(X) ) # put nodes from X at x=1
pos.update( (n, (2, i)) for i, n in enumerate(Y) ) # put nodes from Y at x=2
nx.draw(B, pos=pos)
plt.show()

bipartite-graph

关键是创建dict对于nx.draw pos参数,即:

A dictionary with nodes as keys and positions as values.

参见the docs .

关于python - NetworkX 中的二分图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084004/

相关文章:

python - 极坐标图 thetagrid 标签

python - Matlab 谱图和 matplotlib 谱图之间的区别?

javascript - Kraken API 中的 InvalidKey 使用 JS,而不是 Python

python - 从元组组合中获取最高计数

python - 如何在同一窗口中同时显示和更新两个 matplotlib 图?

python - 将 Pandas 数据框中的两列展开为列表列表

python - 如何设置 Pandas DataFrame 并在 python 中创建 networkx 图

python - 向图中添加新节点是否会更改旧节点的索引?

python - 检索当前模型之外的 Django ManyToMany 结果

python - 'sys.argv' 是什么意思?