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)