title: Is it possible to mix different shaped nodes in a networkx graph?
body: <p>I have an XML file with two different types of node (let's call it node 'a' and node 'b'). They are connected. I want to present node 'a' as - let's say a square, and node 'b' as a circle. Is this possible in networkx and Python?</p>
  
  <p>My original plan was to declare two graphs:</p>
  
  <pre><code>AG=nx.DiGraph()
  BG=nx.DiGraph()
  </code></pre>
  
  <p>Then add nodes to each of these depending on what type of node it is - so I would iterate through the XML and if the node was a 'type a', then add it to <em>AG</em> and if it is a type B add it to <em>BG</em></p>
  
  <p>Now I can display each graph and define its' shape - typically:</p>
  
  <pre><code>nx.draw_networkx(EG, font_family="Arial", font_size=10,
                   node_size=2000, node_shape="s", node_color='r', labels=node_labels, with_labels=True)
  </code></pre>
  
  <p>The part where it falls over is when I try to add edges between an 'a' node and a 'b' node.</p>
  
  <p>Any ideas on how that might work?</p>