In [2]:
import numpy as np
import networkx as nx
%matplotlib inline
N = 20
G=nx.Graph()
for i in range(-5, 0):
G.add_node(i)
for nuevo_nodo in range(N):
degree = G.degree()
nodes = G.nodes()
edges = G.edges()
num_edges = len(G.edges())
if num_edges == 0:
for _ in range(np.random.poisson(3)):
ran = np.random.randint(len(nodes))
for j, n in enumerate(nodes):
if j == ran:
G.add_edge(nuevo_nodo,j)
else:
grado_total = sum(degree.values())
for _ in range(np.random.poisson(3)):
ran = np.random.randint(grado_total)
n = None
for n, d in degree.items():
ran -= d
if ran < 0:
break
G.add_edge(nuevo_nodo, n)
nx.draw_networkx(G)