从txt文件中读入有向图的函数1
nx.read_edgelist(path, comments=’#’, delimiter=None, create_using=None, nodetype=None, data=True, edgetype=None, encoding=‘utf-8’,)
create_using为创建的图的类型(有向图,无向图等)eg:
nx.read_edgelist('D:/code/try.txt', create_using = nx.DiGraph())
从txt文件中读入有向图的函数2
当要读取的文件中的数据并不是按节点一的名称,节点二的名称,权重这样的三列顺序排列的时候,而是中间还有一些其他的列,比如节点属性等。但只希望读入指定列的数据时,先将指定列读入为DataFrame结构的数据,再将其通过nx.from_pandas_edgelist读入为图
df = pd.read_csv(network_path,delimiter='\t',usecols=[0,3])
dg = nx.from_pandas_edgelist(df,'node1','node2')
或
df = pd.read_csv(network_path,delimiter='\t',names=['node1','node2'])
dg = nx.from_pandas_edgelist(df,'node1','node2')
dg = nx.DiGraph() 该有向图的一些属性
图中的节点和边
dg.nodes() dg.edges()
节点的出度和入度
dg.out_degree(node) dg.in_degree(node)
二分图的创建
B = nx.Graph()
B.add_nodes(list1, bipartite = 0) #list1是二分图左边节点集,eg:list1=[1,5,6]
B.add_nodes(list2, bipartite = 1) #list2是二分图右边节点集
B.add_edges_from(list3) #list3是二分图连边列表,eg:list3=[(1,2),(2,3)]
无向图
图的基本特性
#所有节点的度
nx.degree(g)
#某个节点a的度
g.degree(a)
#图的平均聚集系数
nx.average_clustering(g)
#图中每个节点的聚集系数 返回值为字典,键为节点名称,值为聚集系数
nx.clustering(g)
#图中每个节点的介数中心性 返回值为字典
nx.betweenness_centrality(g)
#图的连通成分
nx.connected_components(g)
#图中的节点子集构成的图
nx.subgraph(g,nodes_sub_sets)
#最大连通子图
max_cc=max(nx.connected_components(g),key=len) #返回的是最大连通子图中的节点的集合
后面再继续补充。