python复杂网络分析库NetworkX 下载本文

内容发布更新时间 : 2024/12/25 2:33:36星期一 下面是文章的全部内容请认真阅读。

python复杂网络分析库NetworkX

阅读目录

无向图 ? 有向图 ? 加权图

? 经典图论算法计算 ? 强连通、弱连通 ? 子图 ? 条件过滤 ? pred,succ

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

?

引入模块

import networkx as nx print nx

回到顶部

无向图

例1:

#!-*- coding:utf8-*-

import networkx as nx

import matplotlib.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 \, G.nodes() #输出全部的节点: [1, 2, 3] print \, G.edges() #输出全部的边:[(2, 3)]

print \, G.number_of_edges() #输出边的数量:1 nx.draw(G)

plt.savefig(\) plt.show()

输出

1 2 3 nodes: [1, 2, 3] edges: [(2, 3)] number of edges: 1

例2:

#-*- coding:utf8-*-

import networkx as nx

import matplotlib.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(\) plt.show()

回到顶部

有向图

例1:

#!-*- coding:utf8-*-

import networkx as nx

import matplotlib.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(\) plt.show()