老师给了任务要画几个复杂网络的图,无奈MATLAB作图实在太麻烦,于是花了一个周末研究怎么画图。下面简单介绍python的第三方库NetworkX
NetworkX
NetworkX是一个用于创建,操作和研究复杂网络的结构,动态和功能的Python包。使用NetworkX,我们可以使用标准和非标准数据格式加载和存储网络,生成多种类型的随机和经典网络,分析网络结构,构建网络模型,设计新的网络算法,绘制网络等等。
基础教程
创建一个图
以下代码用来创建空图:
import networkx as nx
G = nx.Graph()
在这里,Graph是点与边的集合,点的种类有许多,它可以是任何哈希对象:字符串、图像、XML对象、另一个Graph...
点
我们可以一次插入一个点:G.add_node(1)
也可以直接从list中插入一系列点:G.add_nodes_from()
同样,你也可以把图H当做一个点插入到G中:G.add_node(H)
边
一次插入一条边:G.add_edge(1, 2)
同插入点,可以从list中插入一系列边:G.add_edges_from([(1, 2), (1, 3)])
删除/清空
如果想删除图中某特定的点或边,这里有类似上分add的命令:
G.remove_node()
G.remove_nodes_from()
G.remove_edge()
G.re