title: networkx: drawing graphs consistently
body: <p>I am working on plotting 3D cubes, 4D hypercubes, and 5D hypercubes using networkx.</p>
  
  <p>How do I control how the draw() function works? I would like them all to come out at the exact same angle, size, and labeling.</p>
  
  <pre><code>cnt = 0
  for uniqHC in nx_hcl:
      plt.figure()
      nx.draw(uniqHC)
      plt.savefig("uniqHC_" + str(cnt))
      plt.close()
      #nx.relabel_nodes(uniqHC, flatten)
      cnt += 1
  </code></pre>
  
  <p>As you can see, the first one is not bad, the second one is not what I want. It's too hard to understand and compare what is going on. And this is just 3D</p>
  
  <p><img src="https://i.stack.imgur.com/szAnG.png" alt="enter image description here"></p>
  
  <p><img src="https://i.stack.imgur.com/CGYES.png" alt="enter image description here"></p>
  
  <p>The software can plot hypercubes, and they look great. I would like my graphs to be plotted in the same style. Below shows a picture of what I want for the 3D case. My labeling of just '000', '001' is fine. I have tried being clever and starting with their hypercube and removing directed edges and adding my direction, but it distorts the shape of the graph randomly, and it looks as before!</p>
  
  <pre><code>HC = nx.hypercube_graph(3)
  DHC = nx.convert.convert_to_directed(HC)
  nx.draw(HC)
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/QNMpn.png" alt="enter image description here"></p>