From figure documentation:
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
So figure(figsize=(10,10)) creates an 10 inch -by- 10 inch image, which will be 800-by-800 pixels.
If you want to print a large network graph, the easiest way is to increase DPI.
Try something like:
plt.figure(num=None, figsize=(10, 10), dpi=1200). This will produce a large image file.
You can also try printing pdf
plt.savefig("graph.pdf")
Using this option, the final graph is will not be rasterized.
To change the distance between nodes you can make the nodes smaller or change the layout. Changing the layout is hard to do well.
Try the scale option in layout for example,
scale = 2
will double distance between all nodes.
So in your example, change the line
nx.draw(G)
to
pos = nx.circular_layout(G, scale=2)
nx.draw(G, pos)
You can also use different layouts see documentation for more details.