networkx生成随机网络,python中的network
Networkx作为python在图论方面的工具,使用起来非常简单。这里有一个总结。
首先你需要安装:pip install networkx使用:(1)画一个简单的图从Pylab导入networkx作为NX导入Show # #创建一个图g=nx。graph();# #添加图节点g . Add _ node(0);g . add _ node(1);g . add _ node(2);g . add _ node(3);g . add _ node(4);# #添加图边g.add_edge(0,1);g.add_edge(1,3);g.add_edge(1,2);g.add_edge(2,3);g.add_edge(0,3);g.add_edge(0,4);g.add_edge(3,4);Nx.draw(g)show()运行结果:
当然这个是可以批量操作的。
g=nx。graph();G. add _ nodes _ from ([0,1,2,3,4]) G. add _ edges _ from ([(0,1),(1,3),(1,2),(2,3),(0,3),(0,3)
(2)修改点和点的直接权重,即修改边长g=nx。graph();g.add_nodes_from([0,1,2,3,4])g.add_edges_from([(0,1),(1,3),(1,2),(2,3),(0,3),(0,4),(3,4)])g . add _ weighted _ edges _ from([(0,1,1,1,1.0),(1,3,2,3.0),(2,3,4.0),(0,3,2.5),(0,4,2.0),(3,4,1.0)
注意,如果我们不设置权重值,那么值是随机生成的,结果会满足三角形三条边的长度关系。如果我们自己设定的值不完全是一个虚拟的三角形条件,那么设定的值就不会生效,它会自动被设定为满足三角形的三条边的关系。此外,当我在这里使用draw方法时,我使用参数来显示节点的名称,默认情况下不显示。看前两个数字就知道了。
(3)利用自己的图结构networkx有自己丰富的图结构。这里有两个:
tutte=NX . tutte _ graph()NX . draw(tutte,with _ labels=true) show()结果:
maze=NX . sedgewick _ maze _ graph()NX . draw(maze)show()结果:
(4)画圆图形g=nx .空手道_俱乐部_图形()nx.draw _ circular (g,with _ labels=true) show()结果:
看一下正常的绘图:
G=nx .空手道_俱乐部_图形()nx.draw (g,with _ labels=true) show()结果:
以上显示了两种绘图功能的区别。结果是一样的,只是表现的方式不同。
(5)设置绘图参数options={node _ color: black , node _ size: 100, width :3 } tutte=NX . tutte _ graph()NX . draw(tutte,* * options) show()结果:
参考:https://www.osgeo.cn/networkx/
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。