NetworkX est puissant mais j'essayais de tracer un graphique qui montre les étiquettes des nœuds par défaut et j'ai été surpris de voir à quel point cette tâche apparemment simple pouvait être fastidieuse pour quelqu'un de nouveau sur Networkx. Il y a un exemple qui montre comment ajouter des étiquettes au tracé.
https://networkx.github.io/documentation/latest/examples/drawing/labels_and_colors.html
Le problème avec cet exemple est qu'il utilise trop d'étapes et de méthodes lorsque tout ce que je veux faire est simplement d'afficher des étiquettes identiques au nom du nœud 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?
Existe-t-il un moyen de faire en sorte que nx.draw(G)
affiche les étiquettes par défaut (Node1, Node2 dans ce cas) en ligne dans le graphique?
tl/dr: ajoutez simplement with_labels=True
au nx.draw
appel.
Le page que vous regardiez est quelque peu complexe car il montre comment définir beaucoup de choses différentes comme étiquettes, comment donner différentes couleurs aux différents nœuds et comment fournir des positions de nœuds soigneusement contrôlées. Il se passe donc beaucoup de choses.
Cependant, il semble que vous souhaitiez simplement que chaque nœud utilise son propre nom, et vous êtes satisfait de la couleur et de la position par défaut. Alors
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 vouliez faire quelque chose pour que les étiquettes des nœuds soient différentes, vous pourriez 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)