| 123456789101112131415161718192021222324252627282930313233343536 |
- """
- ===============
- Degree Sequence
- ===============
- Random graph from given degree sequence.
- """
- import matplotlib.pyplot as plt
- import networkx as nx
- # Specify seed for reproducibility
- seed = 668273
- z = [5, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1]
- print(nx.is_graphical(z))
- print("Configuration model")
- G = nx.configuration_model(
- z, seed=seed
- ) # configuration model, seed for reproducibility
- degree_sequence = [d for n, d in G.degree()] # degree sequence
- print(f"Degree sequence {degree_sequence}")
- print("Degree histogram")
- hist = {}
- for d in degree_sequence:
- if d in hist:
- hist[d] += 1
- else:
- hist[d] = 1
- print("degree #nodes")
- for d in hist:
- print(f"{d:4} {hist[d]:6}")
- pos = nx.spring_layout(G, seed=seed) # Seed layout for reproducibility
- nx.draw(G, pos=pos)
- plt.show()
|