If you liked the circle layout, you'll love the shell layout—it's just a lot of circles. The shell layout places nodes in concentric circles. Its benefits include the following:
- Can visualize more nodes than a circular layout in the same space
- More central nodes can be placed closer to the center to convey centrality information
However, the shell layout still does not capture community structure well, and can obscure some edges.
The following code uses the NetworkX shell_layout() function to visualize the karate club network. It's possible to use the default settings, but this example also uses community detection to place related nodes in similar locations:
degrees = dict(G.degree())
labels = sorted(degrees.keys(), key=lambda x: degrees[x], reverse=True)
nlist = []
i, k = 0, 6
while i < len(labels):
shell_labels = labels[i:i+k]
ordered_labels...