Représentation graphique de networkx avec des étiquettes de noeuds en défaut de nom de noeud

NetworkX est puissant mais j'ai essayé de tracer un graphique qui montre les étiquettes de noeuds par défaut et j'ai été surpris à quel point cette tâche apparemment simple pourrait être fastidieuse pour quelqu'un de nouveau à Networkx. Il y a un exemple qui montre comment ajouter des étiquettes à la parcelle.

https://networkx.github.io/documentation/latest/examples/drawing/labels_and_colors.html

Le problème avec cet exemple, c'est qu'il utilise trop d'étapes et méthodes quand tout ce que je veux faire est de il suffit d'afficher les étiquettes qui sont identiques au nom du noeud lors du dessin du graphique.

# Add nodes and edges
G.add_node("Node1")
G.add_node("Node2")
G.add_edge("Node1", "Node2")
nx.draw(G)    # Doesn't draw labels. How to make it show labels Node1, Node2 along?

Est-il possible de faire nx.draw(G) afficher les étiquettes par défaut (Node1, Node2 dans ce cas) dans le graphique?

21
demandé sur Joel 2015-02-16 03:59:07

1 réponses

tl/dr: il suffit d'ajouter with_labels=Truenx.draw appel.

Donc la principale raison de la complexité supplémentaire sur cette page était qu'il montre comment définir beaucoup de choses différentes que les étiquettes ainsi que donner des noeuds différents couleurs, et fournir un contrôle minutieux sur les positions des noeuds. Il semble que vous voulez juste le nom qu'il a été donné quand le noeud a été créé, et vous êtes heureux avec la couleur par défaut et par défaut position

import networkx as nx
import pylab as plt

G=nx.Graph()
# Add nodes and edges
G.add_edge("Node1", "Node2")
nx.draw(G, with_labels = True)
plt.savefig('labels.png')

enter image description here

si vous voulez faire quelque chose pour que les étiquettes des noeuds soient différentes, vous pouvez envoyer un dict comme argument. Ainsi, par exemple,

labeldict = {}
labeldict["Node1"] = "shopkeeper"
labeldict["Node2"] = "angry man with parrot"

nx.draw(G,labels=labeldict, with_labels = True)

enter image description here

40
répondu Joel 2016-06-19 00:51:06