示意图的定义,什么叫示意图

首页 > 经验 > 作者:YD1662024-01-01 23:02:28

一个直径为 3 的图

举个例子,下面是一个有两个不同连通分支的图:

示意图的定义,什么叫示意图(5)

一个有两个连通分支的图

示意图的定义,什么叫示意图(6)

有向图

Neo4J 的关于图算法的书给出了清晰明了的总结:

示意图的定义,什么叫示意图(7)

总结(来自 Neo4J Graph Book)

我们看看如何用 Python 检索一个图的这些信息:

n=34 G_karate.degree()

.degree() 属性会返回该图的每个节点的度(相邻节点的数量)的列表:

DegreeView({0: 16, 1: 9, 2: 10, 3: 6, 4: 3, 5: 4, 6: 4, 7: 4, 8: 5, 9: 2, 10: 3, 11: 1, 12: 2, 13: 5, 14: 2, 15: 2, 16: 2, 17: 2, 18: 2, 19: 3, 20: 2, 21: 2, 22: 2, 23: 5, 24: 3, 25: 3, 26: 2, 27: 4, 28: 3, 29: 4, 30: 4, 31: 6, 32: 12, 33: 17})

然后,隔离度的值:

# Isolate the sequence of degrees degree_sequence = list(G_karate.degree())

计算边的数量,但也计算度序列的度量:

nb_nodes = n nb_arr = len(G_karate.edges()) avg_degree = np.mean(np.array(degree_sequence)[:,1]) med_degree = np.median(np.array(degree_sequence)[:,1]) max_degree = max(np.array(degree_sequence)[:,1]) min_degree = np.min(np.array(degree_sequence)[:,1])

最后,打印所有信息:

print("Number of nodes : " str(nb_nodes)) print("Number of edges : " str(nb_arr)) print("Maximum degree : " str(max_degree)) print("Minimum degree : " str(min_degree)) print("Average degree : " str(avg_degree)) print("Median degree : " str(med_degree))

得到:

Number of nodes : 34 Number of edges : 78 Maximum degree : 17 Minimum degree : 1 Average degree : 4.588235294117647 Median degree : 3.0

平均而言,该图中的每个人都连接了 4.6 个人。

我们可以绘出这些度的直方图:

degree_freq = np.array(nx.degree_histogram(G_karate)).astype('float') plt.figure(figsize=(12, 8)) plt.stem(degree_freq) plt.ylabel("Frequence") plt.xlabel("Degre") plt.show()

示意图的定义,什么叫示意图(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.