python绘制无向图度分布曲线

#Copyright (c)2017, 东北大学软件学院学生
# All rightsreserved
#文件名称:a.py
#  作   者:孔云
#问题描述:统计图中的每个节点的度,并生成度序列
#问题分析:利用networkx。代码如下:
import matplotlib.pyplot as plt #导入科学绘图包
import networkx as nx
G=nx.random_graphs.barabasi_albert_graph(1000,3)#生成n=1000,m=3的无标度的图
print ("某个节点的度:",G.degree(0))#返回某个节点的度
print("所有节点的度:",G.degree())#返回所有节点的度
print("所有节点的度分布序列:",nx.degree_histogram(G))#返回图中所有节点的度分布序列(从1至最大度的出现频次)
degree=nx.degree_histogram(G)#返回图中所有节点的度分布序列
x=range(len(degree))#生成X轴序列,从1到最大度
y=[z/float(sum(degree))for z in degree]#将频次转化为频率,利用列表内涵
plt.loglog(x,y,color="blue",linewidth=2)#在双对坐标轴上绘制度分布曲线
plt.show()#显示图表

运行结果:


注:在上一篇基础上,将度分布曲线绘制出来了。

展开阅读全文

没有更多推荐了,返回首页