import networkx as nx #Knjizica, ki jo uporabljamo za ustvarjanje in analiziranje mreze
import random
import matplotlib.pyplot as plt
import numpy as np
import warnings
warnings.filterwarnings('ignore')
V tej skripti bo prikazano kako kličemo različne generatorje mrež.
#2d Regularna mreza
G=nx.grid_2d_graph(5, 4,periodic=True,create_using=None)
avg=0.0 #beležimo povezanost posameznih vozlišč
for i in G:
print("Ime vozlišča = ",i,"povezanost vozlišča = ",G.degree(i))
avg+=G.degree(i)
print("<k> = ", avg/len(G))
print("<C> = %.2f"%(nx.average_clustering(G)))
print("<E> = %.2f"%(1.0/nx.average_shortest_path_length(G)))
pos=nx.spring_layout(G,iterations=100)
#pos=nx.random_layout(G)
#V spodnjih vrsticah je še prikazano,
#kako lahko oblikujemo prikaze mrež
plt.subplot(221)
nx.draw(G,pos,font_size=8,node_size=150)
plt.subplot(222)
nx.draw(G,pos,node_color='k',node_size=150,with_labels=False)
plt.subplot(223)
nx.draw(G,pos,node_color='g',node_size=150,with_labels=False,width=6)
plt.subplot(224)
H=G.to_directed()
nx.draw(H,pos,node_color='b',node_size=150,with_labels=False)
plt.savefig("Regular.png",dpi=150) #Shranimo mrežo
plt.show()
G.clear()
#Erdos-Renyi#
G=nx.erdos_renyi_graph(40,0.1,seed=None,directed=False)
#pos=nx.spring_layout(G,iterations=100)
pos=nx.random_layout(G)
plt.subplot(221)
nx.draw(G,pos,font_size=16,node_size=150)
plt.subplot(222)
nx.draw(G,pos,node_color='k',node_size=50,with_labels=False)
plt.subplot(223)
nx.draw(G,pos,node_color='g',node_size=50,with_labels=False,width=1)
plt.subplot(224)
H=G.to_directed()
nx.draw(H,pos,node_color='b',node_size=50,with_labels=False)
plt.savefig("ER.png")
plt.show()
G.clear()
#BARABASI
G=nx.barabasi_albert_graph(40, 2)
#pos=nx.spring_layout(G,iterations=100)
pos=nx.random_layout(G)
k=np.zeros([len(G)],int)
for i in G:
k[i]=G.degree(i)
plt.subplot(221)
nx.draw(G,pos,font_size=8,node_size=k*10.0)
plt.subplot(222)
nx.draw(G,pos,node_color='k',node_size=50,with_labels=False)
plt.subplot(223)
nx.draw(G,pos,node_color='g',node_size=50,with_labels=False,width=1)
plt.subplot(224)
H=G.to_directed()
nx.draw(H,pos,node_color='b',node_size=50,with_labels=False)
plt.savefig("Barabasi.png")
plt.show()
G.clear()
#WATTS-STROGATZ
G=nx.watts_strogatz_graph(40,4,0.1)
#pos=nx.spring_layout(G,iterations=100)
pos=nx.random_layout(G)
k=np.zeros([len(G)],int)
for i in G:
k[i]=G.degree(i)
plt.subplot(221)
nx.draw(G,pos,font_size=8,node_size=k*10.0)
plt.subplot(222)
nx.draw(G,pos,node_color='k',node_size=50,with_labels=False)
plt.subplot(223)
nx.draw(G,pos,node_color='g',node_size=50,with_labels=False,width=1)
plt.subplot(224)
H=G.to_directed()
nx.draw(H,pos,node_color='b',node_size=50,with_labels=False)
plt.savefig("ws.png")
plt.show()
G.clear()