""" ========== Properties ========== Compute some network properties for the lollipop graph. """ import matplotlib.pyplot as plt import networkx as nx G = nx.lollipop_graph(4, 6) pathlengths = [] print("source vertex {target:length, }") for v in G.nodes(): spl = dict(nx.single_source_shortest_path_length(G, v)) print(f"{v} {spl} ") for p in spl: pathlengths.append(spl[p]) print() print(f"average shortest path length {sum(pathlengths) / len(pathlengths)}") # histogram of path lengths dist = {} for p in pathlengths: if p in dist: dist[p] += 1 else: dist[p] = 1 print() print("length #paths") verts = dist.keys() for d in sorted(verts): print(f"{d} {dist[d]}") print(f"radius: {nx.radius(G)}") print(f"diameter: {nx.diameter(G)}") print(f"eccentricity: {nx.eccentricity(G)}") print(f"center: {nx.center(G)}") print(f"periphery: {nx.periphery(G)}") print(f"density: {nx.density(G)}") pos = nx.spring_layout(G, seed=3068) # Seed layout for reproducibility nx.draw(G, pos=pos, with_labels=True) plt.show()