如何解决在 Python 中的 Networkx 上按照特定顺序绘制节点? 结果
我提出的问题没有找到任何答案,可能是因为我没有使用正确的词来表达它,所以我会试着问她希望有人能帮助我,在此先感谢。 我正在尝试使用在 Debian 上运行的 NetworkX 库 2.5 版和 Python 3.9 绘制图形。 我的图由一个节点“s”、一个节点“t”、多个节点 t_i 、 1
是否可以像下图那样绘制它(当然包括边缘)?我没有找到排序节点显示方式的方法...
非常感谢!
解决方法
您可以将 multipartite_layout
用于您想要的位置。您需要在节点属性(参见下面的 level
)中指定节点应属于哪个组,然后检索给定级别中的布局。添加边不会改变节点的位置,所以我没有将它们添加到以下最小示例中:
import networkx as nx
import matplotlib.pylab as pl
G = nx.Graph()
G.add_node("s",level=0)
G.add_node("t_1",level=1)
G.add_node("t_2",level=1)
G.add_node("v_1",level=2)
G.add_node("v_2",level=2)
G.add_node("v_3",level=2)
G.add_node("t",level=3)
pos = nx.multipartite_layout(G,subset_key="level")
nx.draw(G,pos,with_labels=True)
pl.show()
结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。