In [1]:
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ž.

In [2]:
#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)
Ime vozlišča =  (0, 0) povezanost vozlišča =  4
Ime vozlišča =  (0, 1) povezanost vozlišča =  4
Ime vozlišča =  (0, 2) povezanost vozlišča =  4
Ime vozlišča =  (0, 3) povezanost vozlišča =  4
Ime vozlišča =  (1, 0) povezanost vozlišča =  4
Ime vozlišča =  (1, 1) povezanost vozlišča =  4
Ime vozlišča =  (1, 2) povezanost vozlišča =  4
Ime vozlišča =  (1, 3) povezanost vozlišča =  4
Ime vozlišča =  (2, 0) povezanost vozlišča =  4
Ime vozlišča =  (2, 1) povezanost vozlišča =  4
Ime vozlišča =  (2, 2) povezanost vozlišča =  4
Ime vozlišča =  (2, 3) povezanost vozlišča =  4
Ime vozlišča =  (3, 0) povezanost vozlišča =  4
Ime vozlišča =  (3, 1) povezanost vozlišča =  4
Ime vozlišča =  (3, 2) povezanost vozlišča =  4
Ime vozlišča =  (3, 3) povezanost vozlišča =  4
Ime vozlišča =  (4, 0) povezanost vozlišča =  4
Ime vozlišča =  (4, 1) povezanost vozlišča =  4
Ime vozlišča =  (4, 2) povezanost vozlišča =  4
Ime vozlišča =  (4, 3) povezanost vozlišča =  4
<k> =  4.0
<C> = 0.00
<E> = 0.43
In [3]:
#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()
In [4]:
#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()
In [6]:
#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()
In [7]:
#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()