spring_layout is force-directed. circular_layout is a ring. Pass seed= so the plot repeats.
Goal
Draw the same graph two ways.
import networkx as nx
G = nx.Graph([('Nairobi', 'Nakuru'), ('Nakuru', 'Kisumu'), ('Nairobi', 'Mombasa')])
pos = nx.spring_layout(G, seed=0)
nx.draw(G, pos, with_labels=True)
plt.show()
print(pos['Nairobi'].round(3))import networkx as nx
G = nx.cycle_graph(['Nairobi', 'Nakuru', 'Kisumu', 'Mombasa'])
nx.draw(G, nx.circular_layout(G), with_labels=True)
plt.show()
print('ok')import networkx as nx
print(list(nx.random_layout(nx.path_graph(3), seed=0).keys()))import networkx as nx
print(nx.kamada_kawai_layout(nx.path_graph(3))[0].round(2))