networkx–nx.draw()参数
- nx.draw():至少接受一个参数,即待绘制的网络G。
- 边的样式:①solid实线;②dashed虚线;③dotted虚线,更密集;④dashdot虚线,是②③的结合。
- `node_size`: 指定节点的尺寸大小(默认是300)
- `node_color`: 指定节点的颜色 (默认是红色,可以用字符串简单标识颜色,例如'r'为红色,'b'为绿色等)
- `node_shape`: 节点的形状(默认是圆形,用字符串'o'标识)
- `alpha`: 透明度 (默认是1.0,不透明,0为完全透明)
- `width`: 边的宽度 (默认为1.0)
- `edge_color`: 边的颜色(默认为黑色)
- `style`: 边的样式(默认为实现,可选: solid|dashed|dotted,dashdot)
- `with_labels`: 节点是否带标签(默认为True)
- `font_size`: 节点标签字体大小 (默认为12)
- `font_color`: 节点标签字体颜色(默认为黑色)
节点
print('图中所有的节点', G.nodes())
print('图中节点的个数', G.number_of_nodes())
输出:
图中所有的节点 ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <networkx.classes.graph.Graph object at 0x0000023CD7E08708>]
图中节点的个数 20
networkx常用函数
用途 |
功能 |
函数 |
读取文件/生成图 |
创建无向图 |
G = nx.Graph() |
读取文件/生成图 |
创建有向图 |
G = nx.DiGraph() |
读取文件/生成图 |
读取gml文件 |
G=nx.read_gml(‘karate.gml’,label=‘id’) |
读取文件/生成图 |
读取txt文件 |
G = nx.read_edgelist(“Email-Enron.txt”) |
读取文件/生成图 |
读取有权值的txt文件 |
nx.read_weighted_edgelist(data) |
读取文件/生成图 |
读取有权值的txt文件,并生成有向图 |
nx.read_weighted_edgelist(data, create_using=nx.DiGraph()) |
读取文件/生成图 |
随机生成30个点,连接概率为0.05 |
G =nx.erdos_renyi_graph(30, 0.05) |
添加结点/边 |
从列表中添加节点[a,b,c] |
G.add_nodes_from(node) |
添加结点/边 |
从列表中添加边[[a,b],[a,c]] |
G.add_edges_from(edge) |
判断 |
判断两节点之间是否有边 |
Graph.has_edge(u, v) |
记数 |
网络中节点个数 |
G.number_of_nodes() |
记数 |
网络中边的个数 |
G.number_of_edges() |
画图 |
画网络图 |
nx.draw_networkx(G)(显示标签) |
获取节点信息 |
获取结点i的邻居节点 |
G.neighbors(i) 或 G[i](在有向图中输出的是出度的邻居,G[i]会输出权重) |
获取节点信息 |
输出k-shell为5的节点 |
nx.k_core(G,5).nodes |
获取节点信息 |
获取所有节点的度 |
G.degree() |
获取节点信息 |
获取某个节点的出度 |
G.out_degree(i) |
获取节点信息 |
获取节点i的属性 |
G.nodes[i][“wight”] |
获取节点信息 |
设置节点i的属性 |
G.nodes[i][“wight”]=0.1 |
获取节点信息 |
为多个节点设置属性 |
nx.set_node_attributes(G, ‘wight’, {i:0.2, j:0.1}) |
获取节点信息 |
查看图中所有点的信息 |
G.nodes.data() |
获取边信息 |
查看边的信息 |
G.edges[‘node1’, 'node2‘] |
获取边信息 |
查看所有边的信息 |
G.edges.data() |
输出文件 |
将图输出为gephi文件 |
nx.write_gexf(G,‘your_file_name.gexf’) |
输出文件 |
将图输出为txt文件 |
nx.write_edgelist(G,“file_name.txt”,data = False) |
计算节点中心性 |
度中心性 |
nx.degree_centrality(G) |
计算节点中心性 |
特征向量中心性 |
nx.eigenvector_centrality(G) |
计算节点中心性 |
特征向量中心性(大网络) |
nx.eigenvector_centrality_numpy(G) |
计算节点中心性 |
介数中心性 |
nx.betweenness_centrality(G) |
计算节点中心性 |
接近中心性 |
nx.closeness_centrality(G) |
计算节点中心性 |
pagerank |
nx.pagerank(G) |
计算节点中心性 |
HITS |
nx.hits(G) |
最短路径/最短路径长度 |
两点间最短路径 |
nx.shortest_path(G,source=1,target=155) |
最短路径/最短路径长度 |
两点间的最短路径长度 |
nx.shortest_path_length(G,source=1,target=155) |
最短路径/最短路径长度 |
dijkstra路径 |
nx.dijkstra_path(G,1,155) |
最短路径/最短路径长度 |
dijkstra路径长度 |
nx.dijkstra_path_length(G,1,155) |
最短路径/最短路径长度 |
当前节点与可达节点的最短路径 |
nx.single_source_shortest_path(G, 0) |
最短路径/最短路径长度 |
图中两两节点计算最短路径长度的 |
dict(nx.all_pairs_shortest_path(G)) |
最短路径/最短路径长度 |
计算整个图的平均最短路径长度 |
nx.average_shortest_path_length(G) |