python调用matplotlib画图(含四个子图)

用到了双对数座标系和线性座标系

import matplotlib.pyplot as plt
import numpy as np

plt.suptitle("Degree Display",fontsize=16,x=0.53,y=1.05,)
# 将整个figure分成两行两列,第三个参数表示该图形放在第1个网格
plt.subplot(2, 2, 1)
degree =nx.degree_histogram(G)          #返回图中所有节点的度分布序列
x = range(len(degree)) #生成X轴序列,从1到最大度
y = [z / float(sum(degree)) for z in degree] #在双对座标轴上绘制度分布曲线
plt.plot(x,y,color="blue",linewidth=2)
plt.title('Space_L Degree Plot')  # 画图的标题
plt.xlabel('Degree(K)')
plt.ylabel('Probability(K)')

plt.subplot(222)
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.title('Space_L Degree Log_log Plot')  # 画图的标题
plt.xlabel('Degree(K)')
plt.ylabel('Probability(K)')

# 将整个figure分成两行两列,并该图形放在第3个网格
plt.subplot(223)
degree_p =  nx.degree_histogram(Gp)          #返回图中所有节点的度分布序列
x_p = range(len(degree_p)) #生成X轴序列,从1到最大度
y_p = [z_p / float(sum(degree_p)) for z_p in degree_p] #在双对座标轴上绘制度分布曲线
plt.plot(x_p,y_p,color="blue",linewidth=2)#在双对数座标轴上绘制度分布曲线  
plt.title('Space_P Degree Plot')
plt.xlabel('Degree(K)')
plt.ylabel('Probability(K)')

# 将整个figure分成两行两列,并该图形放在第4个网格
plt.subplot(224)
degree_p =  nx.degree_histogram(Gp)          #返回图中所有节点的度分布序列
x_p = range(len(degree_p)) #生成X轴序列,从1到最大度
y_p = [z_p / float(sum(degree_p)) for z_p in degree_p] #在双对座标轴上绘制度分布曲线
plt.loglog(x_p,y_p,color="blue",linewidth=2)#在双对数座标轴上绘制度分布曲线  
plt.title('Space_P Degree Log_log Plot')
plt.xlabel('Degree(K)')
plt.ylabel('Probability(K)')

plt.tight_layout() #设置默认的间距
#plt.subplots_adjust(wspace =1, hspace =1)#调整子图间距
#plt.subplots_adjust( wspace =1)#调整子图间距
plt.savefig('degree.jpg', bbox_inches = 'tight')
plt.show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章