networkx是一个python包,用于创建、操作和研究复杂网络的结构、动态和功能
使用NetworkX,您可以以标准和非标准数据格式加载和存储网络,生成多种类型的随机和经典网络,分析网络结构,构建网络模型,设计新的网络算法,绘制网络,
Gallery — NetworkX 2.8.4 documentation
建图
G = nx.Graph() #定义了一个空图 #有向图 G = nx.DiGraph()
添加节点
import matplotlib.pyplot as plt import networkx as nx G = nx.Graph() #定义了一个空图 G.add_node(1) #增加了1节点 G.add_node('A') #增加了A节点 G.add_nodes_from([2, 3]) #同时加2和3两个节点 nx.draw(G, with_labels=True) plt.show()
如果nx.draw不带with_labels=True
添加边
import matplotlib.pyplot as plt import networkx as nx G = nx.Graph() #定义了一个空图 G.add_node(1) #增加了1节点 G.add_node('A') #增加了A节点 G.add_nodes_from([2, 3]) #同时加2和3两个节点 G.add_edges_from([(1,2),(1,3),(2,'A'),(2,3)]) #添加边 G.add_edge(2,'A') nx.draw(G, with_labels=True) plt.show()
添加边带权重
G.add_weighted_edges_from([(i, j, weight)])
nx.shell_layouot() 布局
pos=nx.circular_layout(G) # 生成圆形节点布局 pos=nx.random_layout(G) # 生成随机节点布局 pos=nx.shell_layout(G) # 生成同心圆节点布局 pos=nx.spring_layout(G) # 利用Fruchterman-Reingold force-directed算法生成节点布局 pos=nx.spectral_layout(G) # 利用图拉普拉斯特征向量生成节点布局 pos=nx.kamada_kawai_layout(G) #使用Kamada-Kawai路径长度代价函数生成布局
连通分量
import networkx as nx import matplotlib.pyplot as plt import numpy as np probability = [] num_ = [] size_of_max = [] for p in np.arange(0.1, 1, 0.1): p = round(p, 1) probability.append(p) ER = nx.random_graphs.erdos_renyi_graph(n=10, p=p) num = nx.number_connected_components(ER) print(f"Number of connected components of ER graph with p = {p}: {num}") num_.append(int(num)) max_components = max(nx.connected_components(ER), key=len) size_of_max.append(len(max_components)) print(f"The size of largest connected component of ER graph with p = {p}: {len(max_components)}") print() nx.draw(ER, with_labels = True) plt.savefig(f'ER_{p}.jpg') plt.clf() plt.plot(probability, num_) plt.xlabel('p') plt.ylabel('Number of connected components') plt.savefig(f"Num_of_connected_components.jpg") plt.clf() plt.plot(probability, size_of_max) plt.xlabel('p') plt.ylabel('The size of largest connected component') plt.savefig(f"Size_of_largest_connected_components.jpg")
今天的文章Python NetworkX分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9597.html