# 图形生成器和图形操作 ## 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 [(图)] | 返回图形的定向视图 graph . | ## 2 经典生成小图 | petersen_graph \ [create_using] ) | 返回彼得森图。 | |---|---| | tutte_graph \ [create_using] ) | 返回图特图。 | | sedgewick_maze_graph \ [create_using] ) | 返回一个带有循环的小迷宫。 | | tetrahedral_graph \ [create_using] ) | 返回3-正则柏拉图四面体图。 | ## 3 对经典图形使用生成器 | complete_graph n(n) [, create_using] ) | 返回完整图形 K_n 具有n个节点。 | |---|---| | complete_bipartite_graph (N1,N2) [, create_using] ) | 返回完整的二部图 K_{{n_1,n_2}} . | | barbell_graph (M1,M2) [, create_using] ) | 返回杠铃图:由路径连接的两个完整图。 | | lollipop_graph (m,n) [, create_using] ) | 返回棒棒糖图; K_m 连接到 P_n . |
1
2
3
4
K_5 = nx.complete_graph(5)
K_3_5 = nx.complete_bipartite_graph(3, 5)
barbell = nx.barbell_graph(10, 10)
lollipop = nx.lollipop_graph(10, 20)
## 4 使用随机图形生成器 | erdos_renyi_graph (n,p) [, seed, directed] ) | 返回一个$G{n,p}$随机图,也称为Erdős-Rényi图或二项式图。 | |---|---| | watts_strogatz_graph (n,k,p) [, seed] ) | 返回Watts–Strogaz小世界图。 | | barabasi_albert_graph (n,m) [, seed] ) | 根据barab_si–albert优先连接模型返回随机图。 | | random_lobster \(N、P1、P2)[, seed] ) | 返回随机龙虾图。 |
1
2
3
4
er = nx.erdos_renyi_graph(100, 0.15)
ws = nx.watts_strogatz_graph(30, 3, 0.1)
ba = nx.barabasi_albert_graph(100, 5)
red = nx.random_lobster(100, 0.9, 0.9)
使用常用的图形格式读取存储在文件中的图形,如边列表、邻接列表、gml、graphml、pickle、leda等。
1
2
nx.write_gml(red, "path.to.file")
mygraph = nx.read_gml("path.to.file")
有关图形格式的详细信息,请参见 读写图表 关于图形生成器函数,请参见 图形生成器