title: Networkx multiple attributes on nodes for multiple labels on graph
body: <p>I am working on a recommendation system that is using <a href="https://en.wikipedia.org/wiki/Formal_concept_analysis" rel="nofollow">formal concept analysis</a> to find the nearest similar client in a network. To create the formal concepts I am using pandas, for the networks networkx and for plotting matplotlib ie everything in Python 3.</p>
  
  <p>My problem is that I want to represent on a graph the 2 types of attributes that have each node : names of clients and movies for instance. To give a quick example : node 1 : "names" -> ["Bob","John"] ; "movies" -> ["Jaws"].
  The "names" and "movies" are coded as attributes to nodes. To continue the example :</p>
  
  <pre><code>G=nx.Graph()
  G.add_nodes_from([1,2])
  G.add_edge(1,2)    
  G.node[1]['names']=["Bob","John"]
  G.node[1]['movies']=["Jaws"]
  </code></pre>
  
  <p>Unfortunately, after long hours to search how to put 2 types of label on each node of the graph, I didn't find the answer. Here is what I think I should use but I don't know how to interact with matplotlib or networkx to do the double labelling :</p>
  
  <pre><code>node_labels = nx.get_node_attributes(G,"names")
  node_labels2 = nx.get_node_attributes(G,"movies")
  nx.draw_networkx_labels(G,labels = ?)
  </code></pre>
  
  <p>Another important aspect of the problem is to put the "movies" on top of the node, and the "names" under the node as shown in the image below.</p>
  
  <p><a href="http://i.stack.imgur.com/4tpIA.png" rel="nofollow">An image of the type of graph I am looking for</a></p>
  
  <p>Thank you a lot for your help !</p>