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?
1 réponses
tl/dr: il suffit d'ajouter with_labels=True
nx.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')
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)