networkx 有向图强连通_python复杂网络分析库NetworkX

NetworkX是Python的图论与复杂网络建模工具,支持无向图、有向图等,并包含多种图算法。本文展示了如何创建有向图、无向图,以及如何进行图的转换、加权、经典图论算法计算,如最短路径,并讨论了强连通和弱连通的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。

引入模块

importnetworkx as nxprint nx

无向图

例1:

#!-*- coding:utf8-*-

importnetworkx as nximportmatplotlib.pyplot as plt

G= nx.Graph() #建立一个空的无向图G

G.add_node(1) #添加一个节点1

G.add_edge(2,3) #添加一条边2-3(隐含着添加了两个节点2、3)

G.add_edge(3,2) #对于无向图,边3-2与边2-3被认为是一条边

print "nodes:", G.nodes() #输出全部的节点: [1, 2, 3]

print "edges:", G.edges() #输出全部的边:[(2, 3)]

print "number of edges:", G.number_of_edges() #输出边的数量:1

nx.draw(G)

plt.savefig("wuxiangtu.png")

plt.show()

输出

例2:

#-*- coding:utf8-*-

importnetworkx as nximportmatplotlib.pyplot as plt

G=nx.DiGraph()

G.add_node(1)

G.add_node(2) #加点

G.add_nodes_from([3,4,5,6]) #加点集合

G.add_cycle([1,2,3,4]) #加环

G.add_edge(1,3)

G.add_edges_from([(3,5),(3,6),(6,7)]) #加边集合

nx.draw(G)

plt.savefig("youxiangtu.png")

plt.show()

有向图

例1:

#!-*- coding:utf8-*-

importnetworkx as nximportmatplotlib.pyplot as plt

G=nx.DiGraph()

G.add_node(1)

G.add_node(2)

G.add_nodes_from([3,4,5,6])

G.add_cycle([1,2,3,4])

G.add_edge(1,3)

G.add_edges_from([(3,5),(3,6),(6,7)])

nx.draw(G)

plt.savefig("youxiangtu.png")

plt.show()

注:有向图和无向图可以互相转换,使用函数:

Gr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值