networkx
文章
0 基础使用
教程 参考文献 官方文档 0 简单介绍图的类型 Graph类是无向图的基类,无向图能有自己的属性或参数,不包含重边,允许有回路,节点可以是任何hash的python对象,节点和边可以保存key/value属性对。该类的构造函数为Graph(data=None,**attr),其中data可以是边列表,或任意一个Networkx的图对象,默认为none;attr是关键字参数,例如key=value对形式的属性。 MultiGraph是可以有重边的无向图,其它和Graph类似。其构造函数MultiGraph(data=None, *attr)。 DiGraph是有向图的基类,有向图可以有数自己的属性或参数,不包含重边,允许有回路;节点可以是任何hash的python对象,边和节点可含key/value属性对。该类的构造函数DiGraph(data=None,**attr),其中data可以是边列表,或任意一个Networkx的图对象,默认为none;attr是关键字参数,例如key=value对形式的属性。 ...
1 图的视图
图的视图视图概述 各种视图提供了图上节点、边、邻接矩阵和度本身的各种基础方法。这些视图提供对属性的迭代,以及成员查询和数据属性查找。 视图引用图形数据结构,因此对图形的更改反映在视图中。这类似于Python3中的字典视图。是一种图表示的数据结构效率非常高,全是字典。 如果要在迭代时更改图形,则需要使用例如 for e in list(G.edges): . 视图提供了类似集合的操作,例如联合和交集, 视图提供了类似dict的数据属性查找和迭代,使用 G.edges[u, v][‘color’] 和 for e, datadict in G.edges.items(): . 方法 G.edges.items() 和 G.edges.values() 2 常见的视图123456789101112131415161718192021222324__all__ = [ "NodeView", #只包含节点的视图 "NodeDataView", # 包含节点和属性的视图 "EdgeView", # 只保函...
2 图生成器
# 图形生成器和图形操作 ## 1 应用经典图形操作 | subgraph \(G ,N启动) | 返回在nbunch中的节点上诱导的子图。 | |---|---| | union (g,h) [, rename, name] ) | 返回图g和h的并集。 | | disjoint_union (g,h) | 返回图G和图H的不相交的并集。 | | cartesian_product (g,h) | 返回g和h的笛卡尔积。 | | compose (g,h) | 返回由h组成的g的新图。 | | complement (g) | 返回g的图补。 | | create_empty_copy (g) [, with_data] ) | 返回图形G的副本,并删除所有边。 | | to_undirected [(图)] | 返回图表的无向视图 graph . | | to_directed [(图)] | 返回图...
3 分析图形
分析图形基础处理分析图形的结构 G 可以使用各种图论函数进行分析,例如: 123456789G = nx.Graph()G.add_edges_from([(1, 2), (1, 3)])G.add_node("spam") # adds node "spam"list(nx.connected_components(G))[{1, 2, 3}, {'spam'}]sorted(d for n, d in G.degree())[0, 1, 1, 2]nx.clustering(G){1: 0, 2: 0, 3: 0, 'spam': 0} 一些具有大输出的函数迭代(节点、值)2元组。这些很容易存储在 dict 结构,如果你愿意的话。 123sp = dict(nx.all_pairs_shortest_path(G))sp[3]{3: [3], 1: [3, 1], 2: [3, 1, 2]} 图算法
4 绘制图形
图形绘制networkx主要不是一个图形绘制包,而是一个带有matplotlib的基本绘图,以及一个使用开源graphviz软件包的接口。这些是 networkx.drawing 模块,如果可能,将导入。 首先导入Matplotlib的绘图接口(Pylab也可以工作) 1import matplotlib.pyplot as plt 测试是否导入 networkx.drawing 抽签成功 G 使用其中之一 1234567G = nx.petersen_graph()plt.subplot(121)<matplotlib.axes._subplots.AxesSubplot object at ...>nx.draw(G, with_labels=True, font_weight='bold')plt.subplot(122)<matplotlib.axes._subplots.AxesSubplot object at ...>nx.draw_shell(G, nlist=[range(5, 10), range(5)], wit...
5 导入导出
读写图表邻接表邻接表networkx.readwrite.adjlist.read_adjlistnetworkx.readwrite.adjlist.write_adjlistnetworkx.readwrite.adjlist.parse_adjlistnetworkx.readwrite.adjlist.generate_adjlist多行邻接列表多行相邻列表networkx.readwrite.multiline_adjlist.read_multiline_adjlistnetworkx.readwrite.multiline_adjlist.write_multiline_adjlistnetworkx.readwrite.multiline_adjlist.parse_multiline_adjlistnetworkx.readwrite.multiline_adjlist.generate_multiline_adjlist边缘列表边缘列表networkx.readwrite.edgelist.read_edgelistnetworkx.readwrite.edg...









